METTI oggetto - Copia
È possibile utilizzare la richiesta S3 PUT Object - Copy per creare una copia di un oggetto già memorizzato in S3. Un'operazione PUT object - Copy equivale all'esecuzione di UN'OPERAZIONE GET e poi PUT.
Risoluzione dei conflitti
Le richieste dei client in conflitto, ad esempio due client che scrivono sulla stessa chiave, vengono risolte in base alle “ultime vittorie”. La tempistica per la valutazione “ultimi successi” si basa su quando il sistema StorageGRID completa una data richiesta e non su quando i client S3 iniziano un'operazione.
Dimensione dell'oggetto
StorageGRID supporta oggetti di dimensioni fino a 5 TB.
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
-
-
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 di oggetti create da StorageGRID se la regola ILM corrispondente specifica un comportamento di Ingest di doppio commit o bilanciato.
-
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.
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, ilREDUCED_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 PUT Object - Copy
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 PUT Object - Copy per crittografare un oggetto esistente o per modificare la crittografia di un oggetto esistente. Se si fornisce
x-amz-server-side-encryption
o ilx-amz-server-side-encryption-customer-algorithm
Intestazione, StorageGRID rifiuta la richiesta e restituisceXNotImplemented
. -
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 si utilizza la crittografia lato server, le intestazioni delle richieste fornite dipendono dalla crittografia dell'oggetto di origine e dalla crittografia dell'oggetto di destinazione.
-
Se l'oggetto di origine viene crittografato utilizzando una chiave fornita dal cliente (SSE-C), è necessario includere le seguenti tre intestazioni nella richiesta PUT Object - Copy, in modo che l'oggetto possa essere decrittare e quindi copiato:
-
x-amz-copy-source-server-side-encryption-customer-algorithm
SpecificareAES256
. -
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
: SpecificareAES256
. -
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.
-
Attenzione: 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, consultare le considerazioni in “utilizzo della crittografia lato server”.
-
Se si desidera crittografare l'oggetto di destinazione (la copia) con una chiave univoca gestita da SSE (StorageGRID), includere questa intestazione nella richiesta PUT Object - Copy:
-
x-amz-server-side-encryption
-
Nota: la 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 “null”.