Questa pagina mostra come comporre più 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.
Gli oggetti di origine non vengono interessati, a meno che tu non decida di eliminarli durante il processo di composizione.
Considerazioni sui costi per gli oggetti temporanei
Se gli oggetti di origine devono essere temporanei, tieni presente le seguenti considerazioni sui costi durante la composizione degli oggetti:
Gli oggetti di origine sono soggetti a durate minime di archiviazione, a seconda della classe di archiviazione, e potrebbero comportare tariffe per l'eliminazione anticipata.
Se l'eliminazione temporanea o il controllo delle versioni degli oggetti sono abilitati, l'eliminazione degli oggetti di origine al termine della composizione può comportare l'eliminazione temporanea o la non attualità degli oggetti di origine, il che potrebbe comportare costi di archiviazione aggiuntivi.
Per ridurre al minimo la fatturazione per gli oggetti temporanei, eliminali definitivamente durante il processo di composizione utilizzando l'opzione
deleteSourceObjects. Gli oggetti eliminati con questa opzione non sono soggetti a tariffe per l'eliminazione anticipata. Inoltre, gli oggetti eliminati con questa opzione non vengono conservati dall'eliminazione temporanea o dal controllo delle versioni degli oggetti perché i dati vengono conservati nell'oggetto composito.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per comporre oggetti, chiedi all'amministratore di concederti il ruolo IAM Storage Object User (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.createstorage.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.getstorage.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 di 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 Storage Object Admin (roles/storage.objectAdmin) anziché il ruolo Storage Object User (roles/storage.objectUser).
Puoi ottenere queste autorizzazioni anche con altri ruoli predefiniti o ruoli personalizzati.
Per informazioni sulla concessione di ruoli sui bucket, consulta Imposta e gestisci le policy IAM sui bucket.
Crea 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_NAMEDove:
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 degli oggetti.COMPOSITE_OBJECT_NAMEè il nome che stai assegnando al risultato della composizione degli oggetti.
Per eliminare gli oggetti di origine nell'ambito del processo di composizione, includi il flag --delete-source-objects nel comando precedente.
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 Configura 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 Configura 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 Configura 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 Configura 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 Configura 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 Configura 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 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.
Rust
API REST
API JSON
Avere gcloud CLI installato e inizializzato, che ti consente di 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" }, "deleteSourceObjects": DELETE_SOURCE_OBJECTS_BOOLEAN }
Dove:
SOURCE_OBJECT_1eSOURCE_OBJECT_2sono i nomi degli oggetti di origine da utilizzare nella composizione degli oggetti.COMPOSITE_OBJECT_CONTENT_TYPEè il Content-Type dell'oggetto composto risultante.DELETE_SOURCE_OBJECTS_BOOLEANè impostato sutruese vuoi eliminare gli oggetti di origine nell'ambito del processo di composizione o sufalsese vuoi conservare gli oggetti di origine. Il valore predefinito èfalse.
Utilizza
cURLper chiamare l'API JSON con una richiesta oggettoPOST: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 degli oggetti.
In caso di esito positivo, la risposta è una risorsa oggetto per l'oggetto composto risultante.
API XML
Avere gcloud CLI installato e inizializzato, che ti consente di generare un token di accesso per l'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_1eSOURCE_OBJECT_2sono i nomi degli oggetti di origine da utilizzare nella composizione degli oggetti.
Utilizza
cURLper chiamare l'API XML con una richiestaPUTObject 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 Content-Type dell'oggetto composto 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 degli oggetti.
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.