Skip to main content
La versione in lingua italiana fornita proviene da una traduzione automatica. Per eventuali incoerenze, fare riferimento alla versione in lingua inglese.

Oggetto CopyObject

Collaboratori

È possibile utilizzare la richiesta CopyObject S3 per creare una copia di un oggetto già memorizzato in S3. Un'operazione CopyObject è la stessa dell'esecuzione di GetObject seguito da PutObject.

Risolvi i conflitti

Le richieste dei client in conflitto, come due client che scrivono sulla stessa chiave, vengono risolte in base alle "ultime vincite". La tempistica per la valutazione degli "ultimi successi" si basa sul momento in cui il sistema StorageGRID completa una data richiesta e non sul momento in cui i client S3 iniziano un'operazione.

Dimensione dell'oggetto

La dimensione massima raccomandata per una singola operazione PutObject è di 5 GiB (5.368.709.120 byte). Se sono presenti oggetti di dimensioni superiori a 5 GiB, utilizzare "caricamento multiparte" invece.

La dimensione massima supportata per una singola operazione PutObject è 5 TiB (5.497.558.138.880 byte).

Nota Se è stato eseguito l'aggiornamento da StorageGRID 11,6 o versioni precedenti, l'avviso S3 PUT object size too large verrà attivato se si tenta di caricare un oggetto che supera i 5 GiB. Se si dispone di una nuova installazione di StorageGRID 11,7 o 11,8, l'avviso non verrà attivato in questo caso. Tuttavia, per allinearsi allo standard AWS S3, le versioni future di StorageGRID non supporteranno il caricamento di oggetti di dimensioni superiori a 5 GiB.

UTF-8 caratteri nei metadati dell'utente

Se una richiesta include valori UTF-8 (non escapati) nel nome della chiave o nel valore dei metadati definiti dall'utente, il comportamento di StorageGRID non è definito.

StorageGRID non analizza o interpreta i caratteri UTF-8 escapati inclusi nel nome della chiave o nel valore dei metadati definiti dall'utente. I caratteri UTF-8 escapiti vengono trattati come caratteri ASCII:

  • Le richieste hanno esito positivo se i metadati definiti dall'utente includono caratteri UTF-8 escapiti.

  • StorageGRID non restituisce x-amz-missing-meta header se il valore interpretato del nome o del valore della chiave include caratteri non stampabili.

Intestazioni di richiesta supportate

Sono supportate le seguenti intestazioni di richiesta:

  • Content-Type

  • x-amz-copy-source

  • x-amz-copy-source-if-match

  • x-amz-copy-source-if-none-match

  • x-amz-copy-source-if-unmodified-since

  • x-amz-copy-source-if-modified-since

  • x-amz-meta-, seguito da una coppia nome-valore contenente metadati definiti dall'utente

  • x-amz-metadata-directive: Il valore predefinito è COPY, che consente di copiare l'oggetto e i metadati associati.

    È possibile specificare REPLACE per sovrascrivere i metadati esistenti durante la copia dell'oggetto o per aggiornare i metadati dell'oggetto.

  • x-amz-storage-class

  • x-amz-tagging-directive: Il valore predefinito è COPY, che consente di copiare l'oggetto e tutti i tag.

    È possibile specificare REPLACE per sovrascrivere i tag esistenti durante la copia dell'oggetto o per aggiornare i tag.

  • Intestazioni della richiesta di blocco oggetti S3:

    • x-amz-object-lock-mode

    • x-amz-object-lock-retain-until-date

    • x-amz-object-lock-legal-hold

      Se viene effettuata una richiesta senza queste intestazioni, le impostazioni di conservazione predefinite del bucket vengono utilizzate per calcolare la modalità di versione dell'oggetto e mantenere la data fino alla data. Vedere "Utilizzare l'API REST S3 per configurare il blocco oggetti S3".

  • Intestazioni di richiesta SSE:

    • x-amz-copy-source​-server-side​-encryption​-customer-algorithm

    • x-amz-copy-source​-server-side-encryption-customer-key

    • x-amz-copy-source​-server-side-encryption-customer-key-MD5

    • x-amz-server-side-encryption

    • x-amz-server-side-encryption-customer-key-MD5

    • x-amz-server-side-encryption-customer-key

    • x-amz-server-side-encryption-customer-algorithm

Intestazioni di richiesta non supportate

Le seguenti intestazioni di richiesta non sono supportate:

  • Cache-Control

  • Content-Disposition

  • Content-Encoding

  • Content-Language

  • Expires

  • x-amz-website-redirect-location

Opzioni di classe storage

Il x-amz-storage-class L'intestazione della richiesta è supportata e influisce sul numero di copie degli oggetti create da StorageGRID se la regola ILM corrispondente utilizza il doppio commit o bilanciato "opzione di acquisizione".

  • STANDARD

    (Impostazione predefinita) specifica un'operazione di ingest dual-commit quando la regola ILM utilizza l'opzione Dual commit o quando l'opzione Balanced (bilanciamento) torna alla creazione di copie interinali.

  • REDUCED_REDUNDANCY

    Specifica un'operazione di ingest a commit singolo quando la regola ILM utilizza l'opzione di commit doppio o quando l'opzione di bilanciamento ritorna alla creazione di copie interinali.

    Nota Se si sta inserendo un oggetto in un bucket con il blocco oggetti S3 attivato, il REDUCED_REDUNDANCY l'opzione viene ignorata. Se si sta acquisendo un oggetto in un bucket compatibile legacy, il REDUCED_REDUNDANCY l'opzione restituisce un errore. StorageGRID eseguirà sempre un ingest dual-commit per garantire che i requisiti di conformità siano soddisfatti.

Utilizzo di x-amz-copy-source in CopyObject

Se il bucket e la chiave di origine, specificati in x-amz-copy-source header, sono diversi dal bucket e dalla chiave di destinazione, una copia dei dati dell'oggetto di origine viene scritta nella destinazione.

Se l'origine e la destinazione corrispondono, e il x-amz-metadata-directive l'intestazione è specificata come REPLACE, i metadati dell'oggetto vengono aggiornati con i valori dei metadati forniti nella richiesta. In questo caso, StorageGRID non reinserisce l'oggetto. Questo ha due conseguenze importanti:

  • Non è possibile utilizzare CopyObject per crittografare un oggetto esistente sul posto o per modificare la crittografia di un oggetto esistente sul posto. Se si fornisce x-amz-server-side-encryption o il x-amz-server-side-encryption-customer-algorithm Intestazione, StorageGRID rifiuta la richiesta e restituisce XNotImplemented.

  • L'opzione per il comportamento di Ingest specificata nella regola ILM corrispondente non viene utilizzata. Le modifiche al posizionamento degli oggetti che vengono attivate dall'aggiornamento vengono apportate quando ILM viene rivalutato dai normali processi ILM in background.

    Ciò significa che se la regola ILM utilizza l'opzione Strict per il comportamento di acquisizione, non viene eseguita alcuna azione se non è possibile eseguire il posizionamento degli oggetti richiesto (ad esempio, perché non è disponibile una nuova posizione richiesta). L'oggetto aggiornato mantiene la posizione corrente fino a quando non è possibile il posizionamento richiesto.

Intestazioni di richiesta per la crittografia lato server

Se "usa crittografia lato server", le intestazioni di richiesta fornite dipendono dal fatto che l'oggetto di origine sia crittografato o meno e dal fatto che si intenda crittografare l'oggetto di destinazione.

  • Se l'oggetto di origine viene crittografato utilizzando una chiave fornita dal cliente (SSE-C), è necessario includere le tre intestazioni seguenti nella richiesta CopyObject, in modo che l'oggetto possa essere decrittografato e quindi copiato:

    • x-amz-copy-source​-server-side​-encryption​-customer-algorithm: Specificare AES256.

    • x-amz-copy-source​-server-side-encryption-customer-key: Specificare la chiave di crittografia fornita al momento della creazione dell'oggetto di origine.

    • x-amz-copy-source​-server-side-encryption-customer-key-MD5: Specificare il digest MD5 fornito al momento della creazione dell'oggetto di origine.

  • Se si desidera crittografare l'oggetto di destinazione (la copia) con una chiave univoca che si fornisce e si gestisce, includere le seguenti tre intestazioni:

    • x-amz-server-side-encryption-customer-algorithm: Specificare AES256.

    • x-amz-server-side-encryption-customer-key: Specificare una nuova chiave di crittografia per l'oggetto di destinazione.

    • x-amz-server-side-encryption-customer-key-MD5: Specificare il digest MD5 della nuova chiave di crittografia.

    Avvertenza Le chiavi di crittografia fornite non vengono mai memorizzate. Se si perde una chiave di crittografia, si perde l'oggetto corrispondente. Prima di utilizzare le chiavi fornite dal cliente per proteggere i dati degli oggetti, esaminare le considerazioni per "utilizzo della crittografia lato server".
  • Se si desidera crittografare l'oggetto di destinazione (la copia) con una chiave univoca gestita da StorageGRID (SSE), includere questa intestazione nella richiesta CopyObject:

    • x-amz-server-side-encryption

      Nota Il server-side-encryption impossibile aggiornare il valore dell'oggetto. Invece, fare una copia con un nuovo server-side-encryption valore utilizzando x-amz-metadata-directive: REPLACE.

Versione

Se il bucket di origine è configurato con la versione, è possibile utilizzare x-amz-copy-source intestazione per copiare l'ultima versione di un oggetto. Per copiare una versione specifica di un oggetto, è necessario specificare esplicitamente la versione da copiare utilizzando versionId sottorisorsa. Se il bucket di destinazione è configurato con la versione, la versione generata viene restituita in x-amz-version-id intestazione della risposta. Se il controllo delle versioni viene sospeso per il bucket di destinazione, allora x-amz-version-id restituisce un valore "nullo".