Questa pagina descrive gli oggetti compositi, che vengono creati da oggetti esistenti senza trasferire dati aggiuntivi degli oggetti. Gli oggetti compositi sono utili per eseguire aggiunte a un oggetto esistente, nonché per ricreare oggetti che hai caricato come più componenti in parallelo.
Operazione di composizione
L'operazione di composizione concatena i dati in una determinata sequenza di oggetti di origine per creare un nuovo oggetto chiamato oggetto composito. Tutti gli oggetti di origine devono:
- Avere la stessa classe di archiviazione.
- Essere archiviati nello stesso bucket Cloud Storage.
Quando esegui una composizione:
- Gli oggetti di origine non sono interessati.
- Puoi utilizzare da 1 a 32 oggetti sorgente.
- Gli oggetti di origine possono essere a loro volta oggetti compositi.
L'oggetto composito risultante da una composizione:
- Ha la stessa classe di archiviazione degli oggetti di origine.
- Non cambia se gli oggetti di origine vengono successivamente sostituiti o eliminati.
Quando utilizzi gcloud storage
per eseguire la composizione degli oggetti, l'oggetto
risultante ha un Content-Type
impostato in modo che corrisponda al Content-Type
del primo
oggetto di origine.
Metadati degli oggetti compositi
Esistono diverse differenze tra i metadati di un oggetto composito e i metadati di altri oggetti:
Gli oggetti compositi non hanno un campo metadati hash MD5.
Il valore ETag di un oggetto composto non si basa su un hash MD5 e il codice client non deve fare ipotesi sulle ETag degli oggetti composti, tranne che cambiano ogni volta che l'oggetto sottostante cambia in base alla specifica IETF per HTTP/1.1.
Ogni oggetto composto ha un campo metadati conteggio componenti, che conteggia il numero di oggetti non composti contenuti nell'oggetto composto.
- Se riscrivi un oggetto composito in una posizione o una classe di archiviazione diversa, il risultato è un oggetto composito con un conteggio dei componenti pari a 1.
Oggetti compositi di controllo dell'integrità
Cloud Storage utilizza CRC32C per il controllo di integrità di ogni oggetto di origine al momento del caricamento e per consentire al chiamante di eseguire un controllo di integrità dell'oggetto composito risultante al momento del download. CRC32C è un codice di rilevamento degli errori che può essere calcolato in modo efficiente dai valori CRC32C dei suoi componenti. L'applicazione deve utilizzare CRC32C nel seguente modo:
- Quando carichi gli oggetti di origine, devi calcolare il CRC32C per ogni oggetto utilizzando una libreria CRC32C, ad esempio una di quelle elencate nella pagina dei metadati dell'oggetto e includere questo valore nella richiesta. In base ai valori che fornisci, Cloud Storage convalida ogni caricamento.
- L'operazione di composizione verifica automaticamente che gli oggetti di origine siano assemblati correttamente e ignora qualsiasi valore CRC32C fornito nell'ambito della richiesta di composizione. Nella risposta viene restituito un CRC32C dell'oggetto composito risultante.
- Se la tua applicazione potrebbe modificare gli oggetti di origine tra il momento del caricamento e della composizione di questi oggetti, devi specificare nomi specifici per la generazione degli oggetti di origine per evitare condizioni di competizione. In alternativa, puoi creare un valore CRC32C dai valori CRC32C degli oggetti di origine previsti e confrontarlo con il valore CRC32C restituito dall'operazione di composizione.
- Al momento del download, devi calcolare il CRC32C dell'oggetto scaricato e confrontarlo con il valore incluso nella risposta.
Aggiunta e modifica limitate
Puoi utilizzare l'operazione di composizione per eseguire aggiunte e modifiche limitate agli oggetti.
L'accodamento viene eseguito caricando i dati in un nuovo oggetto temporaneo, componendo l'oggetto da accodare con questo oggetto temporaneo, assegnando facoltativamente all'output dell'operazione di composizione lo stesso nome dell'oggetto originale ed eliminando l'oggetto temporaneo.
Ad esempio, in gcloud CLI, la serie di comandi per
aggiungere la stringa new data
a un oggetto Cloud Storage esistente è
la seguente:
$ echo 'new data' | gcloud storage cp - gs://bucket/temporary_object $ gcloud storage objects compose gs://bucket/object_to_append gs://bucket/temporary_object \ gs://bucket/object_to_append $ gcloud storage rm gs://bucket/temporary_object
Puoi anche utilizzare la composizione per supportare una versione di base della modifica degli oggetti. Ad esempio, puoi comporre un oggetto X dalla sequenza {Y1, Y2, Y3}, sostituire i contenuti di Y2 e ricomporre X da questi stessi componenti. Tieni presente che per farlo è necessario lasciare intatti Y1, Y2 e Y3, quindi ti verrà addebitato il costo di questi componenti, nonché quello del composito.
Passaggi successivi
- Componi un oggetto.
- Scopri di più sui caricamenti compositi paralleli.
- Scopri di più sui caricamenti multiparte, un modo alternativo per caricare oggetti in più blocchi per gli utenti dell'API XML.