Rendre des données publiques

Cette page explique comment rendre vos objets lisibles publiquement. Pour savoir comment accéder aux données rendues publiques, consultez la page Accéder aux données publiques.

Rendre des objets individuels lisibles publiquement

Pour rendre des objets individuels lisibles publiquement :

Console

  1. Ouvrez le navigateur Cloud Storage dans la console Google Cloud Platform.
    Ouvrir le navigateur Cloud Storage
  2. Dans la liste des buckets, 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.

  3. Cliquez sur le menu déroulant associé à l'objet que vous souhaitez rendre public.

    Le menu déroulant apparaît sous la forme de trois points verticaux à l'extrémité droite de la ligne de l'objet.

  4. Dans le menu déroulant, sélectionnez Modifier les autorisations.

  5. Dans la fenêtre qui apparaît en superposition, cliquez sur le bouton + Ajouter un élément.

  6. Ajoutez une autorisation pour allUsers.

    • Sélectionnez Utilisateur pour le champ Entité.
    • Saisissez allUsers pour le champ Nom.
    • Sélectionnez Lecture pour le champ Accès.
  7. Cliquez sur Enregistrer.

Une fois le partage public effectué, une icône de lien s'affiche dans la colonne Accès public. Vous pouvez cliquer sur cette icône pour obtenir l'URL de l'objet.

gsutil

Exécutez la commande gsutil acl ch, en remplaçant les éléments entre crochets ([VALUES_IN_BRACKETS]) par les valeurs appropriées :

gsutil acl ch -u AllUsers:R gs://[BUCKET_NAME]/[OBJECT_NAME]

Si l'opération réussit, la réponse se présente comme suit :

Updated ACL on gs://[BUCKET_NAME]/[OBJECT_NAME]

Exemples de code

C++

Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage C++.

namespace gcs = google::cloud::storage;
using ::google::cloud::StatusOr;
[](gcs::Client client, std::string bucket_name, std::string object_name) {
  StatusOr<gcs::ObjectMetadata> updated = client.PatchObject(
      bucket_name, object_name, gcs::ObjectMetadataPatchBuilder(),
      gcs::PredefinedAcl::PublicRead());

  if (!updated) {
    throw std::runtime_error(updated.status().message());
  }

  std::cout << "Object updated. The full metadata after the update is: "
            << *updated << "\n";
}

C#

Pour plus d'informations, consultez la documentation de référence de l'API Cloud Storage en langage C#.

private void MakePublic(string bucketName, string objectName)
{
    var storage = StorageClient.Create();
    var storageObject = storage.GetObject(bucketName, objectName);
    storageObject.Acl = storageObject.Acl ?? new List<ObjectAccessControl>();
    storage.UpdateObject(storageObject, new UpdateObjectOptions
    {
        PredefinedAcl = PredefinedObjectAcl.PublicRead
    });
    Console.WriteLine(objectName + " is now public and can be fetched from " +
        storageObject.MediaLink);
}

Go

Pour plus d'informations, consultez la documentation de référence de l'API Cloud Storage en langage Go.

acl := client.Bucket(bucket).Object(object).ACL()
if err := acl.Set(ctx, storage.AllUsers, storage.RoleReader); err != nil {
	return err
}

Java

Pour plus d'informations, consultez la documentation de référence de l'API Cloud Storage en langage Java.

BlobId blobId = BlobId.of(bucketName, blobName, blobGeneration);
Acl acl = storage.createAcl(blobId, Acl.of(User.ofAllUsers(), Role.READER));

Node.js

Pour plus d'informations, consultez la documentation de référence de l'API Cloud Storage en langage Node.js.

// Imports the Google Cloud client library
const {Storage} = require('@google-cloud/storage');

// Creates a client
const storage = new Storage();

/**
 * TODO(developer): Uncomment the following lines before running the sample.
 */
// const bucketName = 'Name of a bucket, e.g. my-bucket';
// const filename = 'File to make public, e.g. file.txt';

// Makes the file public
await storage
  .bucket(bucketName)
  .file(filename)
  .makePublic();

console.log(`gs://${bucketName}/${filename} is now public.`);

PHP

Pour plus d'informations, consultez la documentation de référence de l'API Cloud Storage en langage PHP.

use Google\Cloud\Storage\StorageClient;

/**
 * Make an object publically accessible.
 *
 * @param string $bucketName the name of your Cloud Storage bucket.
 * @param string $objectName the name of your Cloud Storage object.
 *
 * @return void
 */
function make_public($bucketName, $objectName)
{
    $storage = new StorageClient();
    $bucket = $storage->bucket($bucketName);
    $object = $bucket->object($objectName);
    $object->update(['acl' => []], ['predefinedAcl' => 'PUBLICREAD']);
    printf('gs://%s/%s is now public' . PHP_EOL, $bucketName, $objectName);
}

Python

Pour plus d'informations, consultez la documentation de référence de l'API Cloud Storage en langage Python.

def make_blob_public(bucket_name, blob_name):
    """Makes a blob publicly accessible."""
    storage_client = storage.Client()
    bucket = storage_client.get_bucket(bucket_name)
    blob = bucket.blob(blob_name)

    blob.make_public()

    print('Blob {} is publicly accessible at {}'.format(
        blob.name, blob.public_url))

Ruby

Pour plus d'informations, consultez la documentation de référence de l'API Cloud Storage en langage Ruby.

# project_id  = "Your Google Cloud project ID"
# bucket_name = "Your Google Cloud Storage bucket name"
# file_name   = "Name of file in Google Cloud Storage to make public"

require "google/cloud/storage"

storage = Google::Cloud::Storage.new project_id: project_id
bucket  = storage.bucket bucket_name
file    = bucket.file file_name

file.acl.public!

puts "#{file.name} is publicly accessible at #{file.public_url}"

API REST

API JSON

  1. Obtenez un jeton d'accès d'autorisation sur la page OAuth 2.0 Playground. Configurez Playground de façon à utiliser vos propres identifiants OAuth.
  2. Créez un fichier .json contenant les informations suivantes :
  3. {
    "entity": "allUsers",
    "role": "READER"
    }
  4. Exécutez cURL pour appeler l'API JSON avec une requête Insert ACL, en remplaçant les éléments entre crochets ([VALUES_IN_BRACKETS]) par les valeurs appropriées :
    curl -X POST --data-binary @[JSON_FILE_NAME].json \
        -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        -H "Content-Type: application/json" \
        "https://www.googleapis.com/storage/v1/b/[BUCKET_NAME]/o/[OBJECT_NAME]/acl"

API XML

  1. Obtenez un jeton d'accès d'autorisation sur la page OAuth 2.0 Playground. Configurez Playground de façon à utiliser vos propres identifiants OAuth.
  2. Créez un fichier .xml contenant les informations suivantes :
  3. <AccessControlList>
    <Entries>
        <Entry>
          <Scope type="AllUsers"/>
          <Permission>READ</Permission>
        </Entry>
    </Entries>
    </AccessControlList>
    
  4. Exécutez cURL pour appeler l'API XML avec une requête Set Object ACL, en remplaçant les éléments entre crochets ([VALUES_IN_BRACKETS]) par les valeurs appropriées :
    curl -X PUT --data-binary @[XML_FILE_NAME].xml \
        -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        "https://storage.googleapis.com/[BUCKET_NAME]/[OBJECT_NAME]?acl"

Rendre des groupes d'objets lisibles publiquement

Pour rendre tous les objets d'un bucket lisibles publiquement :

Console

  1. Ouvrez le navigateur Cloud Storage dans la console Google Cloud Platform.
    Ouvrir le navigateur Cloud Storage
  2. Dans la liste des buckets, cliquez sur le nom de celui que vous souhaitez rendre public.

  3. Sélectionnez l'onglet Autorisations en haut de la page.

  4. Cliquez sur le bouton Ajouter des membres.

    La boîte de dialogue Ajouter des membres s'affiche.

  5. Dans le champ Nouveaux membres, saisissez allUsers.

  6. Dans la liste déroulante Rôles, sélectionnez le sous-menu Cloud Storage, puis cliquez sur l'option Lecteur des objets de l'espace de stockage.

  7. Cliquez sur Save.

Une fois le partage public effectué, une icône de lien s'affiche pour chaque objet dans la colonne Accès public. Vous pouvez cliquer sur cette icône pour obtenir l'URL de l'objet.

gsutil

Exécutez la commande gsutil iam ch, en remplaçant les éléments entre crochets ([VALUES_IN_BRACKETS]) par les valeurs appropriées :

gsutil iam ch allUsers:objectViewer gs://[BUCKET_NAME]

API REST

API JSON

  1. Obtenez un jeton d'accès d'autorisation sur la page OAuth 2.0 Playground. Configurez Playground de façon à utiliser vos propres identifiants OAuth.
  2. Créez un fichier .json contenant les informations suivantes :
  3. {
      "bindings":[
        {
          "role": "roles/storage.objectViewer",
          "members":["allUsers"]
        }
      ]
    }
  4. Exécutez cURL pour appeler l'API JSON avec une requête PUT setIamPolicy, en remplaçant les éléments entre crochets ([VALUES_IN_BRACKETS]) par les valeurs appropriées :
    curl -X PUT --data-binary @[JSON_FILE_NAME].json \
        -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        -H "Content-Type: application/json" \
        "https://www.googleapis.com/storage/v1/b/[BUCKET_NAME]/iam"

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.

Étapes suivantes

Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…

Besoin d'aide ? Consultez notre page d'assistance.