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.
- Poiché le altre classi di archiviazione sono soggette a tariffe per l'eliminazione anticipata, devi sempre utilizzare Standard Storage per gli oggetti temporanei.
- Le eliminazioni frequenti associate alla composizione possono aumentare notevolmente la fattura dello spazio di archiviazione se nel bucket sono attive funzionalità di protezione dei dati. Valuta la possibilità di disattivare l'eliminazione temporanea nei bucket con tassi elevati di operazioni di composizione. Con il controllo delle versioni degli oggetti, specifica le versioni degli oggetti quando elimini gli oggetti di origine per eliminarli definitivamente ed evitare che diventino oggetti non correnti.
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 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.
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_1e- SOURCE_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'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.
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.
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.
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.
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.
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.
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.
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.
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 - cURLper chiamare l'API JSON con una richiesta di- POSToggetto:- 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
- 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_1e- SOURCE_OBJECT_2sono i nomi degli oggetti di origine da utilizzare nella composizione dell'oggetto.
 
- Utilizza - cURLper chiamare l'API XML con una richiesta- PUTObject che includa il parametro della stringa di query- compose:- 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 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.