Oggetti composti

Crea

Questa pagina descrive gli oggetti compositi, che crei da oggetti esistenti senza trasferire dati di oggetti aggiuntivi. Gli oggetti compositi sono utili per creare accodi a un oggetto esistente, nonché per ricreare gli oggetti che hai caricato come più componenti in parallelo.

Operazione di scrittura

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:

Quando esegui una composizione:

  • Gli oggetti di origine non subiranno modifiche.
  • Puoi utilizzare da 1 a 32 oggetti di origine.
  • 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 si utilizza gcloud storage per eseguire la composizione dell'oggetto, l'oggetto che risulta ha un valore Content-Type impostato per corrispondere al Content-Type del primo oggetto di origine.

Metadati di 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 di metadati hash MD5.

  • Il valore ETag di un oggetto composito non è basato su un hash MD5 e il codice client non deve fare ipotesi sugli ETag dell'oggetto composito, ad eccezione del fatto che cambia ogni volta che l'oggetto sottostante cambia in base alla specifica IETF per HTTP/1.1.

  • Ogni oggetto composito ha un campo di metadati conteggio componenti che conteggia il numero di oggetti non composti contenuti all'interno dell'oggetto composito.

    • Se riscrivi un oggetto composito in una località o una classe di archiviazione diversa, il risultato è un oggetto composito con un conteggio dei componenti pari a 1.

Oggetti composti per il controllo dell'integrità

Cloud Storage utilizza CRC32C per verificare l'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 quando viene scaricato. CRC32C è un codice di rilevamento di errore che può essere calcolato in modo efficiente dai valori CRC32C dei suoi componenti. La tua applicazione deve utilizzare CRC32C come segue:

  • Quando carichi oggetti di origine, devi calcolare il valore CRC32C per ogni oggetto utilizzando una libreria CRC32C, come una di quelle elencate nella pagina hash e ETag, e includere questo valore nella richiesta. In base ai valori forniti, Cloud Storage convalida ogni caricamento.
  • L'operazione di composizione controlla automaticamente che gli oggetti di origine siano assemblati correttamente e ignora qualsiasi valore CRC32C che fornisci nell'ambito della richiesta di scrittura. Un CRC32C dell'oggetto composito risultante viene restituito nella risposta.
  • Se l'applicazione riesce a modificare gli oggetti di origine tra il caricamento e la composizione di questi oggetti, devi specificare nomi specifici per la generazione per gli oggetti di origine in modo da evitare le condizioni di race. 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 scrittura.
  • 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 scrittura per eseguire aggiunte e modifiche limitate di oggetti.

Puoi aggiungere i dati caricando i dati in un nuovo oggetto temporaneo, componendo l'oggetto da aggiungere a questo oggetto temporaneo, facoltativamente nominando l'output dell'operazione di scrittura come l'oggetto originale ed eliminando l'oggetto temporaneo.

Ad esempio, nell'interfaccia a riga di comando gcloud, 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 un'impostazione di base per l'editing degli oggetti. Ad esempio, potresti comporre un oggetto X dalla sequenza {Y1, Y2, Y3}, sostituire i contenuti di Y2 e ricomporre X dagli stessi componenti. Tieni presente che ciò richiede che Y1, Y2 e Y3 non vengano eliminati, pertanto ti verranno addebitati costi per questi componenti e per l'elemento composito.

Passaggi successivi