Questa pagina mostra come comporre oggetti Cloud Storage in un unico oggetto. Una richiesta di composizione accetta da 1 a 32 oggetti e crea un nuovo oggetto composito. L'oggetto composito è una concatenazione degli oggetti di origine nell'ordine in cui sono stati specificati nella richiesta.
Quando componi gli oggetti, tieni presente quanto segue:
- Gli oggetti di origine non sono interessati dal processo di composizione. Se sono temporanei, devi eliminarli una volta completata la composizione.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per comporre gli oggetti, chiedi all'amministratore di concederti il ruolo IAM Utente oggetti archiviazione (roles/storage.objectUser
) sul bucket. Questo ruolo predefinito contiene le autorizzazioni necessarie per comporre gli oggetti. Per vedere quali sono esattamente le autorizzazioni
richieste, espandi la sezione Autorizzazioni obbligatorie:
Autorizzazioni obbligatorie
storage.objects.create
storage.objects.delete
- Questa autorizzazione è necessaria solo se vuoi assegnare all'oggetto che componi lo stesso nome di un oggetto già esistente nel bucket.
storage.objects.get
storage.objects.list
- Questa autorizzazione è necessaria solo se vuoi utilizzare i caratteri jolly per comporre oggetti con un prefisso comune senza dover elencare ogni oggetto separatamente nel comando Google Cloud CLI.
Se vuoi impostare una configurazione della conservazione per l'oggetto
che componi, devi disporre anche dell'autorizzazione storage.objects.setRetention
. Per
ottenere questa autorizzazione, chiedi all'amministratore di concederti il ruolo Amministratore oggetti Storage (roles/storage.objectAdmin
) anziché il ruolo Utente oggetti Storage (roles/storage.objectUser
).
Puoi anche ottenere queste autorizzazioni con altri ruoli predefiniti o ruoli personalizzati.
Per informazioni sulla concessione dei ruoli sui bucket, consulta Utilizzare IAM con i bucket.
Creare un oggetto composito
Riga di comando
Utilizza il comando 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
Dove:
BUCKET_NAME
è il nome del bucket che contiene gli oggetti di origine.SOURCE_OBJECT_1
eSOURCE_OBJECT_2
sono i nomi degli oggetti di origine da utilizzare nella composizione dell'oggetto.COMPOSITE_OBJECT_NAME
è il nome che stai assegnando al risultato della composizione dell'oggetto.
Librerie client
C++
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage C++.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
C#
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage C#.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
Go
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Go.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
Java
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Java.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
Node.js
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Node.js.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
PHP
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage PHP.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
Python
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Python.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
Ruby
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Ruby.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN
su s3nsapis.fr
.
API REST
API JSON
Avere gcloud CLI installata e inizializzata, il che ti consente di generare un token di accesso per l'intestazione
Authorization
.Crea un file JSON contenente le seguenti informazioni:
{ "sourceObjects": [ { "name": "SOURCE_OBJECT_1" }, { "name": "SOURCE_OBJECT_2" } ], "destination": { "contentType": "COMPOSITE_OBJECT_CONTENT_TYPE" } }
Dove:
Utilizza
cURL
per chiamare l'API JSON con una richiestaPOST
Object:curl -X POST --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.s3nsapis.fr/storage/v1/b/BUCKET_NAME/o/COMPOSITE_OBJECT_NAME/compose"
Dove:
JSON_FILE_NAME
è il nome del file che hai creato nel passaggio precedente.BUCKET_NAME
è il nome del bucket che contiene gli oggetti di origine.COMPOSITE_OBJECT_NAME
è il nome che stai assegnando al risultato della composizione dell'oggetto.
In caso di esito positivo, la risposta è una risorsa oggetto per l'oggetto composito risultante.
API XML
Avere gcloud CLI installata e inizializzata, il che ti consente di generare un token di accesso per l'intestazione
Authorization
.Crea un file XML che contenga le seguenti informazioni:
<ComposeRequest> <Component> <Name>SOURCE_OBJECT_1</Name> </Component> <Component> <Name>SOURCE_OBJECT_2</Name> </Component> </ComposeRequest>
Dove:
SOURCE_OBJECT_1
eSOURCE_OBJECT_2
sono i nomi degli oggetti di origine da utilizzare nella composizione dell'oggetto.
Utilizza
cURL
per chiamare l'API XML con una richiestaPUT
Object che include il parametro della stringa di querycompose
: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.s3nsapis.fr/BUCKET_NAME/COMPOSITE_OBJECT_NAME?compose"
Dove:
XML_FILE_NAME
è il nome del file che hai creato nel passaggio precedente.COMPOSITE_OBJECT_CONTENT_TYPE
è il Content-Type dell'oggetto composito risultante.BUCKET_NAME
è il nome del bucket che contiene gli oggetti di origine.COMPOSITE_OBJECT_NAME
è il nome che stai assegnando al risultato della composizione dell'oggetto.
In caso di esito positivo, viene restituito un corpo della risposta vuoto.
Passaggi successivi
- Scopri di più sulla composizione degli oggetti.
- Scopri come utilizzare le precondizioni delle richieste per evitare le race condition.