Questa pagina mostra come comporre oggetti Cloud Storage in un singolo oggetto. Una richiesta di scrittura 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.
Quando scrivi oggetti, tieni presente quanto segue:
- Gli oggetti di origine non sono interessati dal processo di composizione. Se sono destinati a essere temporanei, devi eliminarli dopo aver completato correttamente la composizione.
- Poiché le altre classi di archiviazione sono soggette a tariffe di eliminazione anticipata, dovresti sempre utilizzare l'archiviazione Standard per gli oggetti temporanei.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per scrivere oggetti, chiedi all'amministratore di concederti il ruolo IAM Utente oggetti Storage (roles/storage.objectUser
) per il bucket. Questo ruolo predefinito contiene le autorizzazioni necessarie per scrivere oggetti. Per visualizzare le autorizzazioni esatte necessarie, espandi la sezione Autorizzazioni richieste:
Autorizzazioni obbligatorie
storage.objects.create
storage.objects.delete
- Questa autorizzazione è richiesta 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 è richiesta solo se vuoi utilizzare caratteri jolly per comporre oggetti con un prefisso comune senza dover elencare ogni oggetto separatamente nel comando di Google Cloud CLI.
Se vuoi impostare una configurazione di conservazione per l'oggetto che scrivi, avrai bisogno 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 ottenere queste autorizzazioni anche con altri ruoli predefiniti o ruoli personalizzati.
Per informazioni sulla concessione dei ruoli nei 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 di oggetti.COMPOSITE_OBJECT_NAME
è il nome che assegni al risultato della composizione dell'oggetto.
Librerie client
C++
Per maggiori informazioni, consulta la documentazione di riferimento dell'API C++ di Cloud Storage.
Per eseguire l'autenticazione in Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
C#
Per maggiori informazioni, consulta la documentazione di riferimento dell'API C# di Cloud Storage.
Per eseguire l'autenticazione in Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Go
Per maggiori informazioni, consulta la documentazione di riferimento dell'API Go di Cloud Storage.
Per eseguire l'autenticazione in Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Java
Per maggiori informazioni, consulta la documentazione di riferimento dell'API Java di Cloud Storage.
Per eseguire l'autenticazione in Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per maggiori informazioni, consulta la documentazione di riferimento dell'API Node.js di Cloud Storage.
Per eseguire l'autenticazione in Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
PHP
Per maggiori informazioni, consulta la documentazione di riferimento dell'API PHP di Cloud Storage.
Per eseguire l'autenticazione in Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Python
Per maggiori informazioni, consulta la documentazione di riferimento dell'API Python di Cloud Storage.
Per eseguire l'autenticazione in Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Ruby
Per maggiori informazioni, consulta la documentazione di riferimento dell'API Ruby di Cloud Storage.
Per eseguire l'autenticazione in Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
API REST
API JSON
Assicurati che gcloud CLI sia installato e inizializzatoper generare un token di accesso per l'intestazione
Authorization
.In alternativa, puoi creare un token di accesso utilizzando OAuth 2.0 Playground e includerlo nell'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:
SOURCE_OBJECT_1
eSOURCE_OBJECT_2
sono i nomi degli oggetti di origine da utilizzare nella composizione dell'oggetto.COMPOSITE_OBJECT_CONTENT_TYPE
è il Content-Type dell'oggetto composito risultante.
Utilizza
cURL
per chiamare l'API JSON con una richiestaPOST
oggetto: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 creato nel passaggio precedente.BUCKET_NAME
è il nome del bucket che contiene gli oggetti di origine.COMPOSITE_OBJECT_NAME
è il nome che assegni 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 inizializzatoper generare un token di accesso per l'intestazione
Authorization
.In alternativa, puoi creare un token di accesso utilizzando OAuth 2.0 Playground e includerlo nell'intestazione
Authorization
.Crea un file XML contenente 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
oggetto e un 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 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 assegni 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 della richiesta per evitare le gare di gara.