Oggetti compositi

Crea

In questa pagina vengono descritti gli oggetti compositi creati a partire da oggetti esistenti senza trasferire altri dati dell'oggetto. Gli oggetti compositi sono utili aggiungendo un oggetto esistente, oppure ricreando 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. Gli oggetti di origine devono:

Quando esegui una composizione:

  • Gli oggetti di origine non sono interessati.
  • Puoi utilizzare da 1 a 32 oggetti di origine.
  • Gli oggetti di origine possono a loro volta essere 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 comporre un oggetto, l'oggetto che di risultati è impostato un valore Content-Type corrispondente a Content-Type dei primi di origine.

Metadati degli oggetti compositi

Esistono diverse differenze tra i metadati di un oggetto composito e i metadati di altri oggetti:

  • Gli oggetti composti non hanno un campo di metadati hash MD5.

  • Il valore ETag di un oggetto composito non si basa su un hash MD5 e non dovrebbe fare ipotesi sugli ETag di oggetti compositi, tranne che cambiano ogni volta che l'oggetto sottostante cambia in base Specifiche IETF per HTTP/1.1.

  • Ogni oggetto composto ha un campo metadati component count (Conteggio componenti), che conteggia il numero di oggetti non composti contenuti nell'oggetto composto.

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

Controllo dell'integrità di oggetti composti

Cloud Storage utilizza CRC32C per il controllo dell'integrità di ogni oggetto di origine al momento del caricamento e per consentire all'utente chiamante di eseguire un controllo dell'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 relativi componenti. La tua applicazione dovrebbe utilizzare CRC32C come segue:

  • Quando carichi oggetti di origine, devi calcolare il CRC32C per ogni oggetto usando una libreria CRC32C, come una di quelle elencate nella Pagina Metadati degli oggetti e includi quel 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. Viene restituito un CRC32C dell'oggetto composito risultante nella risposta.
  • Se l'applicazione potesse modificare gli oggetti di origine tra il momento della per il caricamento e la composizione di tali oggetti, è necessario specificare valori degli oggetti di origine, in modo da evitare le condizioni di gara. In alternativa, puoi generare 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, è necessario calcolare il CRC32C del e confrontarlo con il valore incluso nella risposta.
di Gemini Advanced.

Aggiunta e modifica limitate

Puoi utilizzare l'operazione di scrittura per eseguire aggiunte e modifiche limitate degli oggetti.

Per eseguire l'accodamento, carica i dati in un nuovo oggetto temporaneo, componi l'oggetto che vuoi accodare con questo oggetto temporaneo, assegna facoltativamente lo stesso nome all'output dell'operazione di composizione dell'oggetto originale ed elimina l'oggetto temporaneo.

Ad esempio, in gcloud CLI, la serie di comandi per aggiungi la stringa new data a un oggetto Cloud Storage esistente le seguenti:

$ 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 utilizzare la composizione anche per supportare le funzionalità 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 dagli stessi componenti. Tieni presente che per farlo è necessario che Y1, Y2 e Y3 non vengano eliminati, pertanto ti verrà addebitato il costo di questi componenti e del composito.

Passaggi successivi