Cette page explique comment utiliser gsutil et les bibliothèques clientes Cloud Storage pour générer facilement des URL signées. Les URL signées accordent un accès en lecture ou en écriture limité dans le temps à une ressource Cloud Storage spécifique. Toute personne disposant de l'URL signée peut l'utiliser lorsqu'elle est active, qu'elle possède ou non un compte Google. Pour en savoir plus sur les URL signées, consultez la page Présentation des URL signées. Pour créer vous-même des URL signées, consultez la page Processus de signature V4 avec votre propre programme.
Créer une URL signée pour télécharger un objet
Pour créer une URL signée permettant d'obtenir un objet à partir d'un bucket, procédez comme suit :
gsutil
Générez une nouvelle clé privée ou utilisez une clé privée existante pour un compte de service. La clé peut être au format JSON ou PKCS12.
Pour en savoir plus sur les clés privées et les comptes de service, consultez la page Comptes de service.
Utilisez la commande
gsutil signurl
, en transmettant le chemin d'accès à la clé privée de l'étape précédente, ainsi que le nom du bucket ou de l'objet.Par exemple, si vous utilisez une clé stockée dans le dossier
Desktop
, la commande suivante génère une URL signée permettant aux utilisateurs d'afficher l'objetcat.jpeg
pendant 10 minutes.gsutil signurl -d 10m Desktop/private-key.json gs://example-bucket/cat.jpeg
En cas de réussite, la réponse doit se présenter comme suit :
URL HTTP Method Expiration Signed URL gs://example-bucket/cat.jpeg GET 2018-10-26 15:19:52 https://storage.googleapis. com/example-bucket/cat.jpeg?x-goog-signature=2d2a6f5055eb004b8690b9479883292ae74 50cdc15f17d7f99bc49b916f9e7429106ed7e5858ae6b4ab0bbbdb1a8ccc364dad3a0da2caebd308 87a70c5b2569d089ceb8afbde3eed4dff5116f0db5483998c175980991fe899fbd2cd8cb813b0016 5e8d56e0a8aa7b3d7a12ee1baa8400611040f05b50a1a8eab5ba223fe5375747748de950ec7a4dc5 0f8382a6ffd49941c42498d7daa703d9a414d4475154d0e7edaa92d4f2507d92c1f7e811a7cab64d f68b5df4857589259d8d0bdb5dc752bdf07bd162d98ff2924f2e4a26fa6b3cede73ad5333c47d146 a21c2ab2d97115986a12c28ff37346d6c2ca83e5618ec8ad95632710b489b75c35697d781c38e& x-goog-algorithm=GOOG4-RSA-SHA256&x-goog-credential=example%40example-project. iam.gserviceaccount.com%2F20181026%2Fus%2Fstorage%2Fgoog4_request&x-goog-date= 20201026T211942Z&x-goog-expires=3600&x-goog-signedheaders=host
L'URL signée est la chaîne commençant par
https://storage.googleapis.com
. Il est probable qu'elle s'étende sur plusieurs lignes. Toute personne disposant de cette URL peut accéder à la ressource associée (dans le cas présent,cat.jpeg
) pendant la période indiquée (ici, 10 minutes).
Exemples de code
C++
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage C++.
C#
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage C#.
Go
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Go.
Java
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Java.
Node.js
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Node.js.
PHP
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage PHP.
Python
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Python.
Ruby
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Ruby.
Créer une URL signée pour importer un objet
Pour créer une URL signée permettant d'importer un objet dans un bucket, procédez comme suit :
gsutil
Générez une nouvelle clé privée ou utilisez une clé privée existante pour un compte de service. La clé peut être au format JSON ou PKCS12.
Pour en savoir plus sur les clés privées et les comptes de service, consultez la page Comptes de service.
Exécutez
gcloud auth activate-service-account
pour vous authentifier à l'aide du compte de service :gcloud auth activate-service-account --key-file KEY_FILE_LOCATION/KEY_FILE_NAME
Où :
KEY_FILE_LOCATION
est le chemin d'accès local au fichier contenant le fichier avec vos identifiants de compte de service. Par exemple,Desktop
.KEY_FILE_NAME
est le nom du fichier contenant vos identifiants de compte de service. Par exemple,key.txt
.
Exécutez la commande
gsutil signurl
avec l'option-u
pour référencer les identifiants du compte de service.Par exemple, la commande suivante crée une URL signée qui permet aux utilisateurs d'importer un fichier image :
gsutil signurl -m PUT -d 1h -c CONTENT_TYPE -u gs://BUCKET_NAME/OBJECT_NAME
Où :
CONTENT_TYPE
est le type de contenu de l'objet. Exemple :image/png
.BUCKET_NAME
est le nom du bucket dans lequel l'objet est importé. Exemple :example-bucket
OBJECT_NAME
est le nom à attribuer à l'objet importé. Exemple :cat.png
En cas de réussite, la réponse doit se présenter comme suit :
URL HTTP Method Expiration Signed URL gs://example-bucket/cat.png PUT 2021-01-09 00:28:11 https://storage.googleapis. com/example-bucket/cat.png?x-goog-signature=2d2a6f5055eb004b8690b9479883292ae74 50cdc15f17d7f99bc49b916f9e7429106ed7e5858ae6b4ab0bbbdb1a8ccc364dad3a0da2caebd308 87a70c5b2569d089ceb8afbde3eed4dff5086f0db5483998c175980991fe899fbd2cd8cb813b0016 5e8d56e0a8aa7b3d7215ee1baa8400611040f05b50a1a8eab5ba223fe1375747748de950ec7i6dc5 0f8382a6ffd4994ac42498d7daa703d9a414d4475154d0e7edaa92d4f2507d92c1f7e8efa7cab64d f68b5df48575b9259d8d0bdb5dc752bdf07bd162d98ff2924f2p4a26fa6b3cede73ad5333c47d146 a21c2ab2d97b15986a12c68ff3734696c2ca83e56b8ec8ad95632710b488b75c35697d781c38e& x-goog-algorithm=GOOG4-RSA-SHA256&x-goog-credential=example%40example-project. iam.gserviceaccount.com%2F20181026%2Fus%2Fstorage%2Fgoog4_request&x-goog-date= 20201026T211942Z&x-goog-expires=3600&x-goog-signedheaders=host
L'URL signée est la chaîne commençant par
https://storage.googleapis.com
. Il est probable qu'elle s'étende sur plusieurs lignes. Toute personne peut utiliser cette URL pour importer une ressource (ici,cat.png
) dans le bucket Cloud Storage spécifié pour la période indiquée (ici, 1 heure).
Exemples de code
C++
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage C++.
C#
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage C#.
Go
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Go.
Java
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Java.
Node.js
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Node.js.
PHP
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage PHP.
Python
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Python.
Ruby
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Ruby.
Étape suivante
- Découvrez comment signer des URL avec votre propre programme.
- Consultez les options disponibles pour les URL signées.
- Apprenez-en plus sur les URL signées
- Découvrez comment importer un objet avec l'API XML.
- Informez-vous sur l'importation d'objets.