Skip to main content
È disponibile una versione più recente di questo prodotto.
La versione in lingua italiana fornita proviene da una traduzione automatica. Per eventuali incoerenze, fare riferimento alla versione in lingua inglese.

Aggiungi un oggetto a un bucket in StorageGRID con la richiesta S3 PutObject

Puoi usare la richiesta S3 PutObject per aggiungere un oggetto a un bucket.

Risolvere i conflitti

Le richieste dei client in conflitto, ad esempio due client che scrivono sulla stessa chiave, vengono risolte in base al principio "latest-wins". Il momento in cui viene effettuata la valutazione "latest-wins" si basa su quando il sistema StorageGRID completa una determinata richiesta, e non su quando i client S3 iniziano un'operazione.

Dimensione dell'oggetto

La dimensione massima consigliata per una singola operazione PutObject è di 5 GiB (5.368.709.120 byte). Se hai oggetti più grandi di 5 GiB, usa "caricamento multiparte" invece.

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

Nota Se hai eseguito l'aggiornamento da StorageGRID 11.6 o versioni precedenti, l'avviso "Dimensioni oggetto S3 PUT troppo grandi" verrà attivato se provi a caricare un oggetto che supera 5 GiB. Se hai 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 future release di StorageGRID non supporteranno il caricamento di oggetti più grandi di 5 GiB.

Dimensione dei metadati utente

Amazon S3 limita la dimensione dei metadati definiti dall'utente all'interno dell'intestazione di ogni richiesta PUT a 2 KB. StorageGRID limita i metadati definiti dall'utente a 24 KiB. La dimensione dei metadati definiti dall'utente viene misurata sommando il numero di byte nella codifica UTF-8 di ogni chiave e valore.

Caratteri UTF-8 nei metadati utente

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

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

  • PutObject, CopyObject, GetObject e HeadObject hanno successo se i metadati definiti dall'utente includono caratteri UTF-8 con escape.

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

Limiti dei tag degli oggetti

Puoi aggiungere tag ai nuovi oggetti quando li carichi oppure puoi aggiungerli agli oggetti esistenti. Sia StorageGRID che Amazon S3 supportano fino a 10 tag per ciascun oggetto. I tag associati a un oggetto devono avere chiavi di tag univoche. Una chiave di tag può essere lunga fino a 128 caratteri Unicode e i valori dei tag possono essere lunghi fino a 256 caratteri Unicode. Chiavi e valori fanno distinzione tra maiuscole e minuscole.

Proprietà dell'oggetto

In StorageGRID, tutti gli oggetti sono di proprietà dell'account proprietario del bucket, inclusi gli oggetti creati da un account non proprietario o da un utente anonimo.

Intestazioni di richiesta supportate

Sono supportate le seguenti intestazioni di richiesta:

  • Cache-Control

  • Content-Disposition

  • Content-Encoding

    Quando specifichi `aws-chunked`per Content-EncodingStorageGRID, non vengono verificati i seguenti elementi:

    • StorageGRID non verifica il chunk-signature rispetto ai dati dei chunk.

    • StorageGRID non verifica il valore che fornisci per x-amz-decoded-content-length rispetto all'oggetto.

  • Content-Language

  • Content-Length

  • Content-MD5

  • Content-Type

  • Expires

  • Transfer-Encoding

    La codifica di trasferimento a blocchi è supportata se aws-chunked payload signing viene utilizzata anche.

  • x-amz-checksum-sha256

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

    Quando specifichi la coppia nome-valore per i metadati definiti dall'utente, usa questo formato generale:

    x-amz-meta-name: value

    Se vuoi usare l'opzione Ora di creazione definita dall'utente come ora di riferimento per una regola ILM, devi usare creation-time come nome del metadato che registra quando è stato creato l'oggetto. Ad esempio:

    x-amz-meta-creation-time: 1443399726

    Il valore per creation-time viene valutato come secondi dal 1° gennaio 1970.

    Nota Una regola ILM non può utilizzare contemporaneamente un orario di creazione definito dall'utente per l'orario di riferimento e l'opzione di ingest Bilanciata o Rigorosa. Viene restituito un errore quando viene creata la regola ILM.
  • x-amz-tagging

  • Intestazioni della richiesta S3 Object Lock

    • x-amz-object-lock-mode

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

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

      Se una richiesta viene effettuata senza queste intestazioni, vengono utilizzate le impostazioni di conservazione predefinite del bucket per calcolare la modalità di versione dell'oggetto e la data di conservazione fino alla quale conservarlo. Vedi "Utilizza l'API REST S3 per configurare S3 Object Lock".

  • Intestazioni della richiesta SSE:

Intestazioni di richiesta non supportate

Le seguenti intestazioni di richiesta non sono supportate:

  • If-Match

    The If-Match header è accettato ma non funzionale.

  • If-None-Match

    The If-None-Match header è accettato ma non funzionale.

  • x-amz-acl

  • x-amz-sdk-checksum-algorithm

  • x-amz-trailer

  • x-amz-website-redirect-location

    L' x-amz-website-redirect-location`intestazione restituisce `XNotImplemented.

Opzioni di classe di archiviazione

L' x-amz-storage-class`intestazione della richiesta è supportata. Il valore inviato per `x-amz-storage-class influisce su come StorageGRID protegge i dati degli oggetti durante l'ingest e non su quante copie persistenti dell'oggetto vengono memorizzate nel sistema StorageGRID (che è determinato da ILM).

Se la regola ILM che corrisponde a un oggetto ingerito utilizza l'opzione di ingest rigorosa, l' `x-amz-storage-class`header non ha alcun effetto.

I seguenti valori possono essere utilizzati per x-amz-storage-class:

  • STANDARD (Predefinito)

    • Doppio commit: Se la regola ILM specifica l'opzione Doppio commit per il comportamento di acquisizione, non appena un oggetto viene acquisito, viene creata una seconda copia di tale oggetto e distribuita a un altro Storage Node (doppio commit). Quando l'ILM viene valutato, StorageGRID determina se queste copie intermedie iniziali soddisfano le istruzioni di posizionamento nella regola. Se non lo fanno, potrebbero essere necessarie nuove copie dell'oggetto in posizioni diverse e le copie intermedie iniziali potrebbero dover essere eliminate.

    • Bilanciato: Se la regola ILM specifica l'opzione Bilanciato e StorageGRID non può creare immediatamente tutte le copie specificate nella regola, StorageGRID crea due copie intermedie su nodi di storage diversi.

      Se StorageGRID può creare immediatamente tutte le copie degli oggetti specificate nella regola ILM (posizionamento sincrono), l `x-amz-storage-class`intestazione non ha alcun effetto.

  • REDUCED_REDUNDANCY

    • Doppio commit: Se la regola ILM specifica l'opzione Doppio commit per il comportamento di acquisizione, StorageGRID crea una singola copia intermedia mentre l'oggetto viene acquisito (commit singolo).

    • Bilanciato: Se la regola ILM specifica l'opzione Bilanciato, StorageGRID crea una singola copia intermedia solo se il sistema non può creare immediatamente tutte le copie specificate nella regola. Se StorageGRID può eseguire il posizionamento sincrono, questa intestazione non ha alcun effetto. L'opzione REDUCED_REDUNDANCY è più indicata quando la regola ILM che corrisponde all'oggetto crea una singola copia replicata. In questo caso, usare REDUCED_REDUNDANCY elimina la creazione e l'eliminazione non necessarie di una copia aggiuntiva dell'oggetto per ogni operazione di ingest.

    Usare l' REDUCED_REDUNDANCY`opzione non è consigliato in altre circostanze. `REDUCED_REDUNDANCY Aumenta il rischio di perdita di dati degli oggetti durante l'ingestione. Ad esempio, potresti perdere dati se la singola copia viene inizialmente memorizzata su un Storage Node che si guasta prima che possa avvenire la valutazione ILM.

Avvertenza Avere una sola copia replicata per un determinato periodo di tempo espone i dati al rischio di perdita permanente. Se esiste una sola copia replicata di un oggetto, quell'oggetto viene perso se un Storage Node si guasta o presenta un errore significativo. Perdi anche temporaneamente l'accesso all'oggetto durante procedure di manutenzione come gli aggiornamenti.

La specifica REDUCED_REDUNDANCY influisce solo su quante copie vengono create quando un oggetto viene acquisito per la prima volta. Non influisce su quante copie dell'oggetto vengono create quando l'oggetto viene valutato dalle policy ILM attive e non comporta che i dati vengano archiviati a livelli inferiori di ridondanza nel sistema StorageGRID.

Nota Se stai inserendo un oggetto in un bucket con S3 Object Lock abilitato, l' `REDUCED_REDUNDANCY`opzione viene ignorata. Se stai inserendo un oggetto in un bucket Compliant legacy, l' `REDUCED_REDUNDANCY`opzione restituisce un errore. StorageGRID esegue sempre un ingest con doppio commit per garantire che i requisiti di conformità siano soddisfatti.

Intestazioni di richiesta per la crittografia lato server

Puoi usare le seguenti intestazioni di richiesta per crittografare un oggetto con la crittografia lato server. Le opzioni SSE e SSE-C si escludono a vicenda.

  • SSE: Usa la seguente intestazione se vuoi crittografare l'oggetto con una chiave univoca gestita da StorageGRID.

  • SSE-C: Utilizza tutte e tre queste intestazioni se vuoi crittografare l'oggetto con una chiave univoca che fornisci e gestisci.

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

    • x-amz-server-side-encryption-customer-key: Specifica la tua chiave di crittografia per il nuovo oggetto.

    • x-amz-server-side-encryption-customer-key-MD5: Specifica l'MD5 digest della chiave di crittografia del nuovo oggetto.

Avvertenza Le chiavi di crittografia che fornisci non vengono mai memorizzate. Se perdi una chiave di crittografia, perdi l'oggetto corrispondente. Prima di utilizzare chiavi fornite dal cliente per proteggere i dati degli oggetti, rivedi le considerazioni per "utilizzando la crittografia lato server".
Nota Se un oggetto è crittografato con SSE o SSE-C, le impostazioni di crittografia a livello di bucket o di grid vengono ignorate.

Versioning

Se il versioning è abilitato per un bucket, un identificativo univoco versionId viene generato automaticamente per la versione dell'oggetto memorizzato. Questo versionId viene inoltre restituito nella risposta tramite l'intestazione di risposta x-amz-version-id.

Se la gestione delle versioni viene sospesa, la versione dell'oggetto viene memorizzata con un valore nullo versionId e se esiste già una versione con valore nullo, verrà sovrascritta.

Calcoli della firma per l'intestazione Authorization

Quando usi l' `Authorization`intestazione per autenticare le richieste, StorageGRID si differenzia da AWS nei seguenti modi:

  • StorageGRID non richiede che le host`intestazioni siano incluse all'interno di `CanonicalHeaders.

  • StorageGRID non richiede Content-Type di essere incluso all'interno di CanonicalHeaders.

  • StorageGRID non richiede che le x-amz-* intestazioni siano incluse all'interno di CanonicalHeaders.

Nota Come best practice, includi sempre queste intestazioni all'interno di CanonicalHeaders per assicurarti che vengano verificate; tuttavia, se le escludi, StorageGRID non restituisce un errore.