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.
Tieni presente quanto segue quando componi gli oggetti:
- Gli oggetti di origine non sono interessati dal processo di composizione. Se sono destinati a essere temporanei, devi eliminarli una volta completata la composizione.
- Poiché le altre classi di archiviazione sono soggette a costi di eliminazione anticipata, devi sempre utilizzare l'archiviazione Standard per gli oggetti temporanei.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per comporre gli oggetti, chiedi all'amministratore di concederti il ruolo IAM Utente oggetto Storage (roles/storage.objectUser) sul bucket. Questo ruolo predefinito include le
autorizzazioni necessarie per comporre gli oggetti. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:
Autorizzazioni obbligatorie
storage.objects.createstorage.objects.delete- Questa autorizzazione è necessaria solo se vuoi assegnare all'oggetto composto lo stesso nome di un oggetto già esistente nel bucket.
storage.objects.getstorage.objects.list- Questa autorizzazione è necessaria solo se vuoi utilizzare 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 di conservazione per l'oggetto
composto, devi disporre anche dell'autorizzazione storage.objects.setRetention. Per ottenere questa autorizzazione, chiedi all'amministratore di concederti il ruolo Amministratore oggetto Storage (roles/storage.objectAdmin) anziché il ruolo Utente oggetto Storage (roles/storage.objectUser).
Puoi ottenere queste autorizzazioni anche con altri ruoli predefiniti o ruoli personalizzati.
Per informazioni sulla concessione dei ruoli sui bucket, consulta Impostare e gestire le policy IAM sui bucket.
Crea un oggetto composito
Riga di comando
Utilizza il gcloud storage objects compose comando:
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_1eSOURCE_OBJECT_2sono 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'APIC++ di Cloud Storage.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
C#
Per saperne di più, consulta la documentazione di riferimento dell'C# API di Cloud Storage.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Go
Per saperne di più, consulta la documentazione di riferimento dell' API Go di Cloud Storage.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Java
Per saperne di più, consulta la documentazione di riferimento dell'API Java Cloud Storage.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Node.js
Per saperne di più, consulta la documentazione di riferimento dell'Node.js API di Cloud Storage.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
PHP
Per saperne di più, consulta la documentazione di riferimento dell'API PHP Cloud Storage.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Python
Per saperne di più, consulta la documentazione di riferimento dell' API Python di Cloud Storage.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
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 Configura l'autenticazione per le librerie client.
API REST
API JSON
Assicurati che gcloud CLI sia installato e inizializzato, in modo da poter generare un token di accesso per l'intestazione
Authorization.Crea un file JSON che contenga le seguenti informazioni:
{ "sourceObjects": [ { "name": "SOURCE_OBJECT_1" }, { "name": "SOURCE_OBJECT_2" } ], "destination": { "contentType": "COMPOSITE_OBJECT_CONTENT_TYPE" } }
Dove:
Utilizza
cURLper chiamare l'API JSON con unaPOSTObject richiesta: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"
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
Assicurati che gcloud CLI sia installato e inizializzato, in modo da poter 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_1eSOURCE_OBJECT_2sono i nomi degli oggetti di origine da utilizzare nella composizione dell'oggetto.
Utilizza
cURLper chiamare l'API XML con unaPUTObject richiesta 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.googleapis.com/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 tipo di contenuto 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.