Creazione di nomi di chiavi oggetto - Amazon Simple Storage Service

Creazione di nomi di chiavi oggetto

La chiave oggetto (o nome di chiave) identifica l'oggetto in modo univoco in un bucket Amazon S3. I metadati dell'oggetto sono invece un set di coppie nome-valore Per ulteriori informazioni sui metadati degli oggetti, consulta Utilizzo dei metadati degli oggetti.

Quando si crea un oggetto, specificare il nome della chiave che lo identifica in modo univoco nel bucket. Ad esempio, quando evidenzi un bucket nella console di Amazon S3, viene visualizzato un elenco degli oggetti nel bucket. Questi nomi sono le chiavi degli oggetti. Il nome della chiave dell'oggetto è una sequenza di caratteri Unicode con codifica UTF-8 di una lunghezza massima di 1.024 byte.

Nota

I nomi delle chiavi dell'oggetto con il valore "soap" non sono supportati per richieste in stile hosting virtuale. Per i valori dei nomi delle chiavi dell'oggetto in cui viene utilizzato "soap", deve invece essere usato un URL in stile percorso.

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 Amazon S3, consulta Modifica dei metadati degli oggetti nella console 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 ha un prefisso, 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, i prefissi e i delimitatori nel nome della chiave di un oggetto consentono alla console di Amazon S3 e agli SDK AWS di applicare la gerarchia e introdurre il concetto di cartella.

  • La console 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 comporterebbero come qualsiasi altro oggetto e potrebbero essere visualizzati e modificati tramite REST API, AWS CLI e gli SDK AWS.

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 garantiscono la massima conformità con DNS, i caratteri sicuri per il Web, i parser XML e altre interfacce API.

Caratteri sicuri

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

Alphanumeric characters
  • 0-9

  • a-z

  • A-Z

Special characters
  • 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

Gli oggetti con nomi chiave che terminano con punti "." scaricati utilizzando la console Amazon S3 avranno i punti "." rimossi dal nome della chiave dell'oggetto scaricato. Per scaricare un oggetto con il nome della chiave che termina con i punti "." conservati nell'oggetto scaricato, è necessario utilizzare la AWS Command Line Interface (AWS CLI), gli SDK AWS o REST API.

Inoltre, tieni a mente le seguenti limitazioni sui prefissi:

  • Gli oggetti con il prefisso "./" devono essere caricati o scaricati con AWS Command Line Interface (AWS CLI), SDK AWS o REST API. Non puoi utilizzare la console Amazon S3.

  • Gli oggetti con il prefisso "../" non possono essere caricati utilizzando AWS Command Line Interface (AWS CLI) o la console Amazon S3.

Caratteri che potrebbero richiedere una gestione speciale

I seguenti caratteri in un nome di chiave potrebbero richiedere ulteriori operazioni di gestione del codice e 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 ("&")

  • Dollaro ("$")

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

  • Simbolo "at" ("@")

  • Uguale ("=")

  • Punto e virgola (";")

  • Barra obliqua ("/")

  • Due punti (":")

  • Più ("+")

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

  • Virgola (",")

  • Punto interrogativo ("?")

Caratteri da evitare

Evitare di utilizzare i seguenti caratteri in un nome di chiave a causa della gestione speciale per garantire la coerenza in tutte le applicazioni.

  • Barra rovesciata ("\")

  • Parentesi graffa di apertura ("{")

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

  • Accento circonflesso ("^")

  • Parentesi graffa di chiusura ("}")

  • Carattere di percentuale ("%")

  • Accento grave/apice inverso ("`")

  • Parentesi quadra di chiusura ("]")

  • Virgolette

  • Simbolo 'maggiore di' (">")

  • Parentesi quadra di apertura ("[")

  • Tilde ("~")

  • Simbolo "minore di" ("<")

  • Carattere "cancelletto" ("#")

  • Barra verticale ("|")

Come specificato dallo standard XML sulla gestione di fine riga, tutto il testo XML viene normalizzato in modo tale che i ritorni a capo singolo (codice ASCII 13) e i ritorni a capo immediatamente seguiti da un avanzamento riga (codice ASCII 10) vengano sostituiti da un singolo carattere di avanzamento riga. Per garantire l'analisi corretta delle chiavi oggetto 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à equivalenti:

  • ' come &apos;

  • ” come &quot;

  • & come &amp;

  • < come &lt;

  • > come &gt;

  • \r come &#13; o &#x0D;

  • \n come &#10; o &#x0A;

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>