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 modificati, 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 sono destinati a essere temporanei, tieni presente le seguenti considerazioni sui costi quando componi gli oggetti:
Gli oggetti di origine sono soggetti a durate minime di archiviazione, a seconda della classe di archiviazione, e potrebbero comportare costi di eliminazione anticipata.
Se l'eliminazione temporanea o il controllo delle versioni degli oggetti è abilitato, l'eliminazione degli oggetti di origine al termine della composizione può comportare la loro eliminazione temporanea o la loro non corrente, il che potrebbe comportare addebiti di archiviazione aggiuntivi.
Per ridurre al minimo la fatturazione degli oggetti temporanei, elimina definitivamente gli oggetti temporanei durante il processo di composizione utilizzando l'opzione
deleteSourceObjects. Gli oggetti eliminati con questa opzione non sono soggetti a costi di 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 gli oggetti, chiedi all'amministratore di concederti il ruolo IAM Utente oggetti Storage (roles/storage.objectUser) sul bucket. Questo ruolo predefinito include le
autorizzazioni necessarie per comporre gli oggetti. Per visualizzare le autorizzazioni esatte 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 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, vedi Impostare e gestire i criteri IAM sui bucket.
Creare 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_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 dell'oggetto.COMPOSITE_OBJECT_NAMEè il nome che stai assegnando al risultato della composizione dell'oggetto.
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'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.
Rust
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 contenente 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 dell'oggetto.COMPOSITE_OBJECT_CONTENT_TYPEè il tipo di contenuto dell'oggetto composito 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 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 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 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 condizioni di competizione.