Cette page vous explique comment rendre vos objets lisibles par tous sur l'Internet public. Pour savoir comment accéder aux données rendues publiques, consultez la page Accéder aux données publiques.
Lorsqu'un objet est partagé publiquement, tout utilisateur connaissant son URI peut y accéder tant qu'il est public.
Prérequis
Les conditions préalables peuvent varier en fonction de l'outil utilisé :
Console
Pour suivre ce guide à l'aide de Google Cloud Console, vous devez disposer des autorisations IAM appropriées. Si les objets ou buckets auxquels vous souhaitez accéder se trouvent dans un projet que vous n'avez pas créé, vous devrez peut-être demander au propriétaire du projet qu'il vous attribue un rôle contenant les autorisations nécessaires.
Pour obtenir la liste des autorisations requises pour des actions spécifiques, consultez la page Autorisations IAM pour Google Cloud Console.
Pour obtenir la liste des rôles pertinents, consultez la page Rôles Cloud Storage. Vous pouvez également créer un rôle personnalisé disposant d'autorisations limitées spécifiques.
Command line
Pour suivre ce guide à l'aide d'un utilitaire de ligne de commande, vous devez disposer des autorisations IAM appropriées. Si les objets ou buckets auxquels vous souhaitez accéder se trouvent dans un projet que vous n'avez pas créé, vous devrez peut-être demander au propriétaire du projet qu'il vous attribue un rôle contenant les autorisations nécessaires.
Pour obtenir la liste des autorisations requises pour des actions spécifiques, consultez la page Autorisations IAM pour les commandes gsutil.
Pour obtenir la liste des rôles pertinents, consultez la page Rôles Cloud Storage. Vous pouvez également créer un rôle personnalisé disposant d'autorisations limitées spécifiques.
Exemples de code
Pour suivre ce guide à l'aide des bibliothèques clientes Cloud Storage, vous devez disposer des autorisations IAM appropriées. Si les objets ou buckets auxquels vous souhaitez accéder se trouvent dans un projet que vous n'avez pas créé, vous devrez peut-être demander au propriétaire du projet qu'il vous attribue un rôle contenant les autorisations nécessaires. Sauf indication contraire, les requêtes de bibliothèque cliente sont effectuées via l'API JSON.
Pour obtenir la liste des autorisations requises pour des actions spécifiques, consultez la page Autorisations IAM pour les méthodes JSON.
Pour obtenir la liste des rôles pertinents, consultez la page Rôles Cloud Storage. Vous pouvez également créer un rôle personnalisé disposant d'autorisations limitées spécifiques.
API REST
API JSON
Pour suivre ce guide à l'aide de l'API JSON, vous devez disposer des autorisations IAM appropriées. Si les objets ou buckets auxquels vous souhaitez accéder se trouvent dans un projet que vous n'avez pas créé, vous devrez peut-être demander au propriétaire du projet qu'il vous attribue un rôle contenant les autorisations nécessaires.
Pour obtenir la liste des autorisations requises pour des actions spécifiques, consultez la page Autorisations IAM pour les méthodes JSON.
Pour obtenir la liste des rôles pertinents, consultez la page Rôles Cloud Storage. Vous pouvez également créer un rôle personnalisé disposant d'autorisations limitées spécifiques.
Rendre des objets individuels lisibles publiquement
Pour rendre certains objets lisibles par tous sur l'Internet public :
Console
- Dans Google Cloud Console, accédez à la page du Navigateur Cloud Storage.
Cliquez sur le nom du bucket contenant l'objet que vous souhaitez rendre public, puis accédez à l'objet s'il se trouve dans un sous-répertoire.
Cliquez sur le menu Autres actions (
) associé à l'objet que vous souhaitez rendre public.
Dans le menu déroulant, sélectionnez Modifier les autorisations.
Dans la fenêtre qui apparaît en superposition, cliquez sur le bouton + Ajouter une entrée.
Ajoutez une autorisation pour allUsers.
- Sélectionnez Public pour le champ Entité.
- Dans le champ Nom, sélectionnez allUsers (Tous les utilisateurs).
- Sélectionnez Lecteur pour le champ Accès.
Cliquez sur Enregistrer.
Une fois l'accès public accordé, Copier l'URL apparaît dans la colonne Accès public. Vous pouvez cliquer sur ce bouton pour obtenir l'URL publique de l'objet.
Pour savoir comment obtenir des informations d'erreur détaillées sur les opérations ayant échoué dans le navigateur Cloud Storage, consultez la page Dépannage.
Command line
Exécutez la commande gsutil acl ch
:
gsutil acl ch -u AllUsers:R gs://BUCKET_NAME/OBJECT_NAME
Où :
BUCKET_NAME
correspond au nom du bucket contenant l'objet que vous souhaitez rendre public. Exemple :my-bucket
OBJECT_NAME
correspond au nom de l'objet que vous souhaitez rendre public. Exemple :pets/dog.png
Si l'opération réussit, la réponse se présente comme suit :
Updated ACL on gs://my-bucket/pets/dog.png
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.
API REST
API JSON
- Obtenez un jeton d'autorisation d'accès sur la page OAuth 2.0 Playground. Configurez Playground pour utiliser vos propres identifiants OAuth. Pour obtenir des instructions, consultez la page Authentification des API.
Créez un fichier JSON contenant les informations suivantes :
{ "entity": "allUsers", "role": "READER" }
Exécutez
cURL
pour appeler l'API JSON avec une requête de LCAInsert
:curl -X POST --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME/acl"
Où :
JSON_FILE_NAME
correspond au chemin d'accès au fichier que vous avez créé à l'étape 2.OAUTH2_TOKEN
correspond au jeton d'accès que vous avez généré à l'étape 1.BUCKET_NAME
correspond au nom du bucket contenant l'objet que vous souhaitez rendre public. Par exemple,my-bucket
.OBJECT_NAME
correspond au nom encodé au format URL de l'objet que vous souhaitez rendre public. Par exemple,pets/dog.png
, encodé au format URL :pets%2Fdog.png
.
API XML
- Obtenez un jeton d'autorisation d'accès sur la page OAuth 2.0 Playground. Configurez Playground pour utiliser vos propres identifiants OAuth. Pour obtenir des instructions, consultez la page Authentification des API.
Créez un fichier XML contenant les informations suivantes :
<AccessControlList> <Entries> <Entry> <Scope type="AllUsers"/> <Permission>READ</Permission> </Entry> </Entries> </AccessControlList>
Exécutez
cURL
pour appeler l'API XML avec une requêteSet Object ACL
:curl -X PUT --data-binary @XML_FILE_NAME \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME?acl"
Où :
XML_FILE_NAME
correspond au chemin d'accès au fichier que vous avez créé à l'étape 2.OAUTH2_TOKEN
correspond au jeton d'accès que vous avez généré à l'étape 1.BUCKET_NAME
correspond au nom du bucket contenant l'objet que vous souhaitez rendre public. Par exemple,my-bucket
.OBJECT_NAME
correspond au nom encodé au format URL de l'objet que vous souhaitez rendre public. Par exemple,pets/dog.png
, encodé au format URL :pets%2Fdog.png
.
Rendre tous les objets d'un bucket lisibles publiquement :
Pour rendre tous les objets d'un bucket lisibles par tous sur l'Internet public :
Console
- Dans Google Cloud Console, accédez à la page du Navigateur Cloud Storage.
Dans la liste des buckets, cliquez sur le nom de celui que vous souhaitez rendre public.
Sélectionnez l'onglet Autorisations en haut de la page.
Dans la section Autorisations, cliquez sur le bouton + Ajouter.
La boîte de dialogue Ajouter des entités principales s'affiche.
Dans le champ Nouvelles entités principales, saisissez
allUsers
.Dans la liste déroulante Sélectionner un rôle, saisissez Lecteur des objets Storage dans le champ de filtre, puis sélectionnez Lecteur des objets Storage dans les résultats filtrés.
Cliquez sur Enregistrer.
Cliquez sur Autoriser l'accès public.
Une fois l'accès public accordé, Copier l'URL apparaît pour chaque objet dans la colonne Accès public. Vous pouvez cliquer sur ce bouton pour obtenir l'URL publique de l'objet.
Pour savoir comment obtenir des informations d'erreur détaillées sur les opérations ayant échoué dans le navigateur Cloud Storage, consultez la page Dépannage.
Command line
Exécutez la commande gsutil iam ch
:
gsutil iam ch allUsers:objectViewer gs://BUCKET_NAME
où BUCKET_NAME
correspond au nom du bucket dont vous souhaitez rendre les objets publics. Exemple :my-bucket
Exemples de code
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.
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.
Terraform
Vous pouvez utiliser une ressource Terraform pour rendre publics tous les objets d'un bucket.
API REST
API JSON
- Obtenez un jeton d'autorisation d'accès sur la page OAuth 2.0 Playground. Configurez Playground pour utiliser vos propres identifiants OAuth. Pour obtenir des instructions, consultez la page Authentification des API.
Créez un fichier JSON contenant les informations suivantes :
{ "bindings":[ { "role": "roles/storage.objectViewer", "members":["allUsers"] } ] }
Exécutez
cURL
pour appeler l'API JSON avec une requête de bucketPUT
:curl -X PUT --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/iam"
Où :
JSON_FILE_NAME
correspond au chemin d'accès au fichier que vous avez créé à l'étape 2.OAUTH2_TOKEN
correspond au jeton d'accès que vous avez généré à l'étape 1.BUCKET_NAME
est le nom du bucket dont vous souhaitez rendre les objets publics. Exemple :my-bucket
.
API XML
Il n'est pas possible de rendre tous les objets d'un bucket lisibles publiquement avec l'API XML. Utilisez plutôt gsutil ou l'API JSON.
Étape suivante
- Accédez aux données qui ont été rendues publiques.
- Apprenez-en plus sur les options de contrôle des accès pour vos buckets et vos objets.