Cette page vous explique comment composer des objets Cloud Storage en un seul objet. Une requête de composition prend entre 1 et 32 objets et crée un objet composite. L'objet composite est une concaténation des objets sources dans l'ordre dans lequel ils ont été spécifiés dans la requête.
Tenez compte des points suivants lorsque vous composez des objets :
- Les objets sources ne sont pas affectés par le processus de composition. Si ces objets sont censés être temporaires, vous devez les supprimer lorsque vous avez terminé la composition.
- Comme les autres classes de stockage sont soumises à des frais de suppression anticipée, vous devez toujours utiliser le stockage standard pour les objets temporaires.
Rôles requis
Pour obtenir les autorisations nécessaires pour composer des objets, demandez à votre administrateur de vous attribuer le rôle IAM "Utilisateur des objets de l'espace de stockage" (roles/storage.objectUser
) sur le bucket. Ce rôle prédéfini contient les autorisations requises pour composer des objets. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :
Autorisations requises
storage.objects.create
storage.objects.delete
- Cette autorisation n'est requise que si vous souhaitez attribuer à l'objet que vous composez le même nom qu'un objet présent dans le bucket.
storage.objects.get
storage.objects.list
- Cette autorisation n'est requise que si vous souhaitez utiliser des caractères génériques pour composer des objets partageant un préfixe commun sans avoir à les répertorier séparément dans votre commande Google Cloud CLI.
Si vous souhaitez définir une configuration de conservation pour l'objet que vous composez, vous devez également disposer de l'autorisation storage.objects.setRetention
. Pour obtenir cette autorisation, demandez à votre administrateur de vous attribuer le rôle "Administrateur des objets Storage" (roles/storage.objectAdmin
) au lieu du rôle "Utilisateur des objets Storage" (roles/storage.objectUser
).
Vous pouvez également obtenir ces autorisations en utilisant d'autres rôles prédéfinis ou des rôles personnalisés.
Pour en savoir plus sur l'attribution de rôles dans des buckets, consultez la page Utiliser IAM avec des buckets.
Créer un objet composite
Ligne de commande
Exécutez la commande gcloud storage objects compose
:
gcloud storage objects compose gs://BUCKET_NAME/SOURCE_OBJECT_1 gs://BUCKET_NAME/SOURCE_OBJECT_2 gs://BUCKET_NAME/COMPOSITE_OBJECT_NAME
Où :
BUCKET_NAME
est le nom du bucket qui contient les objets sources ;SOURCE_OBJECT_1
etSOURCE_OBJECT_2
sont les noms des objets sources à utiliser dans la composition de l'objet ;COMPOSITE_OBJECT_NAME
est le nom que vous donnez au résultat de la composition d'objet.
Bibliothèques clientes
C++
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage C++.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
C#
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage C#.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
Go
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Go.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
Java
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Java.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
Node.js
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Node.js.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
PHP
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage PHP.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
Python
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Python.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
Ruby
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Ruby.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
API REST
API JSON
Vous devez installer et initialiser gcloud CLI, ce qui vous permet de générer un jeton d'accès pour l'en-tête
Authorization
.Créez un fichier JSON contenant les informations suivantes :
{ "sourceObjects": [ { "name": "SOURCE_OBJECT_1" }, { "name": "SOURCE_OBJECT_2" } ], "destination": { "contentType": "COMPOSITE_OBJECT_CONTENT_TYPE" } }
Où :
Exécutez la commande
cURL
pour appeler l'API JSON avec une requêtePOST
Object :curl -X POST --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/COMPOSITE_OBJECT_NAME/compose"
Où :
JSON_FILE_NAME
est le nom du fichier que vous avez créé à l'étape précédente.BUCKET_NAME
est le nom du bucket qui contient les objets sources.COMPOSITE_OBJECT_NAME
est le nom que vous donnez au résultat de la composition d'objet.
Si la requête aboutit, la réponse est une ressource d'objet pour l'objet composite obtenu.
API XML
Vous devez installer et initialiser gcloud CLI, ce qui vous permet de générer un jeton d'accès pour l'en-tête
Authorization
.Créez un fichier XML contenant les informations suivantes :
<ComposeRequest> <Component> <Name>SOURCE_OBJECT_1</Name> </Component> <Component> <Name>SOURCE_OBJECT_2</Name> </Component> </ComposeRequest>
Où :
SOURCE_OBJECT_1
etSOURCE_OBJECT_2
sont les noms des objets sources à utiliser dans la composition de l'objet.
Utilisez
cURL
pour appeler l'API XML avec une requêtePUT
Object et un paramètre de chaîne de requêtecompose
:curl -X PUT --data-binary @XML_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: COMPOSITE_OBJECT_CONTENT_TYPE" \ "https://storage.googleapis.com/BUCKET_NAME/COMPOSITE_OBJECT_NAME?compose"
Où :
XML_FILE_NAME
est le nom du fichier que vous avez créé à l'étape précédente.COMPOSITE_OBJECT_CONTENT_TYPE
est le Content-Type de l'objet composite obtenu.BUCKET_NAME
est le nom du bucket qui contient les objets sources.COMPOSITE_OBJECT_NAME
est le nom que vous donnez au résultat de la composition d'objet.
Si la requête aboutit, un corps de réponse vide est renvoyé.
Étape suivante
- Apprenez-en plus sur la composition d'objets.
- Découvrez comment utiliser les conditions préalables de requête pour éviter les conditions de concurrence.