Denominazione di oggetti Amazon S3 - Amazon Simple Storage Service

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Denominazione di oggetti Amazon S3

La chiave oggetto (o nome di chiave) identifica l'oggetto in modo univoco in un bucket Amazon S3. Quando si crea un oggetto, si specifica il nome della chiave. Ad esempio, nella console Amazon S3, quando si seleziona un bucket, viene visualizzato un elenco di oggetti presenti nel bucket. Questi nomi sono le chiavi degli oggetti.

Il nome della chiave dell’oggetto è costituito da una sequenza di caratteri Unicode in codifica UTF-8, con una lunghezza massima di 1.024 byte o circa 1.024 caratteri latini. In alcune lingue, un singolo carattere può richiedere 2 byte per la codifica. Quando si assegna un nome agli oggetti, occorre tenere presente quanto segue:

  • I nomi delle chiavi degli oggetti fanno distinzione tra maiuscole e minuscole.

  • I nomi delle chiavi dell’oggetto includono i prefissi (denominati come cartelle nella console). Ad esempio, Development/Projects.xls è il nome completo della chiave dell’oggetto Projects.xls che si trova all’interno del prefisso (o cartella) Development. Il prefisso, il delimitatore (/) e il nome dell’oggetto sono inclusi nel limite di 1.024 byte per il nome della chiave dell’oggetto. Per ulteriori informazioni su prefissi e cartelle, consultare Scelta dei nomi delle chiavi di oggetti.

  • Alcuni caratteri potrebbero richiedere una gestione speciale quando vengono utilizzati nei nomi delle chiavi degli oggetti. Per ulteriori informazioni, consulta Linee guida per la denominazione delle chiavi degli oggetti.

Nota

I nomi delle chiavi degli oggetti con il valore "soap" non sono supportati per virtual-hosted-style le richieste. Per i valori dei nomi delle chiavi dell’oggetto in cui viene utilizzato "soap", è necessario utilizzare un URL in stile percorso.

Scelta dei nomi delle chiavi di oggetti

Il modello di dati di Amazon S3 è una struttura flat: crei un bucket e il bucket archivia gli oggetti. Non c'è nessuna gerarchia di bucket secondari o sottocartelle. Tuttavia, è possibile applicare una gerarchia logica utilizzando delimitatori e prefissi di nomi di chiavi come avviene nella console di Amazon S3. La console di Amazon S3 supporta il concetto di cartella. Per ulteriori informazioni su come modificare i metadati dalla console di Amazon S3, consulta Modifica dei metadati degli oggetti nella console di Amazon S3.

Supponiamo che il bucket (admin-created) contenga quattro oggetti con le seguenti chiavi:

Development/Projects.xls

Finance/statement1.pdf

Private/taxdocument.pdf

s3-dg.pdf

La console utilizza i prefissi dei nomi di chiavi (Development/, Finance/ e Private/) e il delimitatore (/) per visualizzare una struttura di cartelle. Poiché la chiave s3-dg.pdf non include un prefisso delimitato da barra, i relativi oggetti vengono visualizzati direttamente a livello root del bucket. Se si apre la cartella Development/, viene visualizzato l'oggetto Projects.xlsx in essa contenuto.

  • Amazon S3 supporta i bucket e gli oggetti e non sono presenti gerarchie. Tuttavia, utilizzando prefissi e delimitatori in un nome chiave di oggetto, la console Amazon S3 e la console AWS SDKs possono dedurre la gerarchia e introdurre il concetto di cartelle.

  • La console di Amazon S3 implementa la creazione di oggetti cartella creando un oggetto a byte zero con il prefisso di cartella e il valore di delimitatore come chiave. Questi oggetti cartella non vengono visualizzati nella console. Altrimenti si comportano come qualsiasi altro oggetto e possono essere visualizzati e manipolati tramite l'API REST, la AWS CLI e. AWS SDKs

Linee guida per la denominazione delle chiavi degli oggetti

Puoi utilizzare qualsiasi carattere UTF-8 all'interno del nome di un oggetto. Tuttavia, utilizzare alcuni caratteri nei nomi delle chiavi può causare problematiche con alcuni protocolli e applicazioni. Le seguenti linee guida consentono di massimizzare la conformità con DNS, caratteri sicuri per il Web, parser XML e altro. APIs

Caratteri sicuri

I seguenti set di caratteri possono essere utilizzati con la massima sicurezza nei nomi delle chiavi:

Caratteri alfanumerici
  • 0-9

  • a-z

  • A-Z

Caratteri speciali
  • Punto esclamativo (!)

  • Trattino (-)

  • Carattere di sottolineatura (_)

  • Punto (.)

  • Asterisco (*)

  • Virgoletta singola (')

  • Parentesi aperta (()

  • Parentesi chiusa ())

Di seguito sono riportati esempi di nomi di chiavi validi per gli oggetti:

  • 4my-organization

  • my.great_photos-2014/jan/myvacation.jpg

  • videos/2014/birthday/video1.wmv

Nota

Se utilizzi la console di Amazon S3 per scaricare un oggetto il cui nome della chiave termina con un punto (.), il punto viene rimosso dal nome della chiave dell’oggetto scaricato. Per conservare i periodi alla fine dei nomi delle chiavi negli oggetti scaricati, devi utilizzare AWS Command Line Interface (AWS CLI) o l'API AWS SDKs REST di Amazon S3.

Inoltre, tieni a mente le seguenti limitazioni sui prefissi:

  • Gli oggetti con un prefisso di ./ devono essere caricati o scaricati con l'API AWS CLI AWS SDKs, o REST. Non è possibile utilizzare la console Amazon S3 per caricare questi oggetti.

  • Le chiavi oggetto che contengono elementi di percorso relativi (ad esempio,../) sono valide se, una volta analizzate left-to-right, il conteggio cumulativo dei segmenti di percorso relativi non supera mai il numero di elementi di percorso non relativi rilevati. Questa regola si applica a tutte le richieste effettuate utilizzando la console Amazon S3, l'API REST AWS CLI di Amazon S3 e. AWS SDKs

    Esempio:

    • videos/2014/../../video1.wmv è valido.

    • videos/../../video1.wmv non è valido.

    • videos/../../2014/video1.wmv non è valido.

Segmenti di percorso relativo con solo punto

Le chiavi degli oggetti contenenti segmenti di percorso (.o..) solo relativi al periodo possono causare un comportamento imprevisto se elaborate da applicazioni o strumenti che li interpretano come riferimenti di percorsi relativi. SDKs

I seguenti modelli possono causare problemi:

  • folder/./file.txt: contiene il riferimento alla directory corrente

  • folder/../file.txt: contiene il riferimento alla directory principale

  • ./file.txt: inizia con il riferimento alla directory corrente

  • ../file.txt: inizia con il riferimento alla directory principale

I seguenti modelli funzionano normalmente:

  • folder/.hidden/file.txt: il punto fa parte del nome del file, non è standalone

  • folder/..backup/file.txt i punti fanno parte del nome del file, non sono standalone

Quando le applicazioni elaborano le chiavi degli oggetti con segmenti con solo punto, possono verificarsi i seguenti impatti sul comportamento:

  • Normalizzazione del percorso: molti sistemi risolvono i riferimenti . e .. automaticamente, modificando potenzialmente il percorso effettivo (ad esempio folder/./file.txt diventa folder/file.txt).

  • Problemi di accesso: le applicazioni potrebbero non riuscire a individuare gli oggetti a causa delle differenze di risoluzione dei percorsi.

  • Comportamento incoerente: strumenti diversi SDKs potrebbero gestire questi modelli in modo diverso

Importante

Per evitare questi problemi, è consigliabile non utilizzare segmenti di percorso con solo punto nei nomi delle chiavi dell’oggetto. È possibile utilizzare convenzioni di denominazione alternative per scopi organizzativi.

Caratteri che potrebbero richiedere una gestione speciale

I seguenti caratteri in un nome di chiave potrebbero richiedere ulteriori operazioni di gestione del codice e molto probabilmente dovranno essere codificati tramite URL o vi si dovrà fare riferimento come HEX. Alcuni di essi sono caratteri non stampabili ed è possibile che non vengano gestiti dal browser in uso; per tale motivo, richiedono una gestione speciale:

  • E commerciale () &

  • Simbolo del dollaro ($)

  • I caratteri ASCII sono compresi tra 00-1F hex (0-31 decimale) e 7F (127 decimale)

  • Simbolo at (@)

  • Segno uguale (=)

  • Punto e virgola () ;

  • Barra obliqua (/)

  • Due punti () :

  • Segno più (+)

  • Spazio - È possibile che in alcuni casi vadano perse sequenze significative di spazi (in particolare, gli spazi multipli)

  • Virgola (,)

  • Punto interrogativo (?)

Caratteri da evitare

È consigliabile non utilizzare i seguenti caratteri nel nome di una chiave a causa della gestione significativa dei caratteri speciali, che non è coerente in tutte le applicazioni:

  • Barra rovesciata () \

  • Parentesi graffa di sinistra ({)

  • Caratteri ASCII non stampabili (caratteri decimali da 128 a 255)

  • Accento circonflesso (^)

  • Parentesi graffa di destra (})

  • Carattere percentuale () %

  • Accento grave o apice inverso (`)

  • Parentesi quadra di destra (])

  • Virgolette (")

  • Segno maggiore di (>)

  • Parentesi quadra di sinistra ([)

  • Tilde () ~

  • Segno minore di (<)

  • Simbolo di numero (#)

  • Barra verticale (|)

Come specificato dallo standard XML sulla end-of-line gestione, tutto il testo XML viene normalizzato in modo tale che i ritorni a riga singola (codice ASCII 13) e i resi a riga singola seguiti da un feed di riga (codice ASCII 10), noti anche come caratteri di nuova riga, vengano sostituiti da un carattere di alimentazione a riga singola. Per garantire l’analisi corretta delle chiavi degli oggetti nelle richieste XML, i ritorni a capo e altri caratteri speciali devono essere sostituiti con il codice di entità XML equivalente quando vengono inseriti all’interno dei tag XML.

Di seguito è riportato un elenco di tali caratteri speciali e dei loro codici di entità XML equivalenti:

  • L’apostrofo (') deve essere sostituito con &apos;

  • Le virgolette (") devono essere sostituite con &quot;

  • La e commerciale (&) deve essere sostituita con &amp;

  • Il segno minore di (<) deve essere sostituito con &lt;

  • Il segno maggiore di (>) deve essere sostituito con &gt;

  • Il ritorno a capo (\r) deve essere sostituito con &#13; o &#x0D;

  • Il carattere di nuova riga (\n) deve essere sostituito con &#10; o &#x0A;

Esempio

Nell'esempio seguente viene illustrato l'utilizzo di un codice di entità XML come sostituzione di un ritorno a capo. Questa richiesta DeleteObjects elimina un oggetto con il parametro key /some/prefix/objectwith\rcarriagereturn (dove \r è il ritorno a capo).

<Delete xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Object> <Key>/some/prefix/objectwith&#13;carriagereturn</Key> </Object> </Delete>

Ordinamento delle chiavi degli oggetti

Amazon S3 dispone le chiavi degli oggetti, compresi i prefissi, in ordine lessicografico in base ai valori di byte con codifica UTF-8.

I caratteri ASCII vengono disposti nel seguente ordine:

  • Caratteri speciali (ad esempio !, /)

  • Lettere maiuscole (A–Z)

  • Lettere minuscole (a–z)

Caratteri non ASCII (ad esempio é, 中 文) sono codificati come sequenze UTF-8 multi-byte e in genere vengono ordinati in base ai caratteri ASCII a causa dei loro valori di byte elevati (ad esempio 0xC3 per é, 0xE4 per 中).

Ad esempio, i prefissi apple/, Apple/, éclair/, 中 文/ vengono ordinati come segue:

1. Apple/ (inizia con 0x41)

2. apple/ (inizia con 0x61)

3. éclair/ (inizia con 0xC3 0xA9)

4. 中 文/ (inizia con 0xE4 0xB8 0xAD 0xE6 0x96 0x87)