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
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 |
|
Special characters |
|
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
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 ("|")
Vincoli chiave degli oggetti correlati a XML
Come specificato dallo standard XML sulla gestione di fine riga
' come
'
” come
"
& come
&
< come
<
> come
>
\r come
o
\n come
o

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 carriagereturn</Key> </Object> </Delete>