Oggetti compositi

Crea

In questa pagina vengono descritti gli oggetti compositi creati a partire da oggetti esistenti senza trasferire ulteriori 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 origini per creare un nuovo oggetto denominato oggetto composto. Gli oggetti di origine tutti 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 elemento Content-Type che corrisponde a Content-Type dei primi di origine.

Metadati degli oggetti composti

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 di metadati per il conteggio dei componenti, in cui vengono conteggiati numero di oggetti non composti contenuti all'interno dell'oggetto composito.

    • Se riscrivi un oggetto composito in una posizione o un'archiviazione differente , il risultato è un oggetto composito con un numero di componenti pari a 1.

Controllo dell'integrità di oggetti composti

Cloud Storage utilizza CRC32C per il controllo dell'integrità ogni oggetto di origine al momento del caricamento e per consentire al chiamante di eseguire un'integrità controllo dell'oggetto composito risultante quando viene scaricato. CRC32C è un errore di rilevamento del codice che può essere calcolato in modo efficiente dal CRC32C dei suoi 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. Basata su i valori forniti, Cloud Storage convalida ogni caricamento.
  • L'operazione di scrittura verifica automaticamente che gli oggetti di origine siano correttamente assemblato e ignora qualsiasi valore CRC32C fornito come parte la richiesta di scrittura. 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 crea un valore CRC32C dai valori CRC32C degli oggetti di origine previsti e con quello di CRC32C restituito dall'operazione di scrittura.
  • Al momento del download, è necessario calcolare il CRC32C del e confrontarlo con il valore incluso nella risposta.

Aggiunta e modifica limitate

Puoi utilizzare l'operazione di scrittura per aggiungere e modificare un numero limitato di oggetti.

Puoi aggiungere dati caricando i dati in un nuovo oggetto temporaneo, componendo all'oggetto che desideri aggiungere all'oggetto temporaneo, facoltativamente assegnando un nome dell'operazione di scrittura è uguale all'oggetto originale, mentre l'eliminazione 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 alcune funzionalità di base dell'editing degli oggetti. Ad esempio, puoi comporre un oggetto X dalla sequenza X, sostituire i contenuti di Y2 e ricomporre X dagli stessi componenti. Tieni presente che è necessario che i file Y1, Y2 e Y3 non vengano eliminati, pertanto verranno addebitati i costi per questi componenti, così come per l'elemento composito.

Passaggi successivi