Organizzazione degli oggetti utilizzando i prefissi - Amazon Simple Storage Service

Organizzazione degli oggetti utilizzando i prefissi

Puoi utilizzare i prefissi per organizzare i dati archiviati nei bucket Amazon S3. Un prefisso è una stringa di caratteri all'inizio del nome della chiave dell'oggetto. Un prefisso può essere di qualsiasi lunghezza, soggetto alla lunghezza massima del nome della chiave dell'oggetto (1.024 byte). Puoi pensare ai prefissi come un modo per organizzare i dati in modo simile alle directory. Tuttavia, i prefissi non sono directory.

La ricerca per prefisso limita i risultati solo alle chiavi che iniziano con il prefisso specificato. Il delimitatore fa in modo che l'operazione di elenco esegua il rollup di tutte le chiavi che condividono un prefisso comune in un unico risultato di elenco di riepilogo

Lo scopo dei parametri Prefix e Delimiter è facilitare l'organizzazione e la visualizzazione delle chiavi in ordine gerarchico. A tale scopo, selezionare un delimitatore per il bucket, ad esempio una barra (/), che non ricorra nei nomi delle chiavi previsti. È possibile utilizzare un altro carattere come delimitatore. Non c'è nulla di unico nel carattere slash (/), ma è un delimitatore di prefisso molto comune. Creare quindi i nomi delle chiavi concatenando tutti i livelli della gerarchia e separando ciascun livello con il delimitatore.

Ad esempio, se si archiviano informazioni sulle città, è possibile organizzarle naturalmente in base al continente, quindi in base al paese, alla provincia o allo stato. Poiché questi nomi in genere non contengono punteggiatura, è possibile selezionare la barra (/) come delimitatore. I seguenti esempi mostrano come utilizzare la barra (/) come delimitatore.

  • Europa/Francia/Nouvelle-Aquitaine/Bordeaux

  • America del Nord/Canada/Quebec/Montreal

  • America del Nord/Stati Uniti/Washington/Bellevue

  • America del Nord/Stati Uniti/Washington/Seattle

Se i dati di ogni città del mondo sono stati archiviati in questo modo, sarebbe strano gestire un namespace di chiavi piatto. Utilizzando Prefix e Delimiter nell'operazione di elenco, puoi usare la gerarchia creata per elencare i dati. Ad esempio, per elencare tutti gli stati degli Stati Uniti, imposta Delimiter='/' e Prefix='North America/USA/'. Per elencare tutte le province del Canada per le quali sono disponibili dati, imposta Delimiter='/' e Prefix='North America/Canada/'.

Elenco di oggetti utilizzando prefissi e delimitatori

Se richiedi un elenco con un delimitatore, puoi visualizzare la gerarchia a un solo livello, omettendo e riassumendo le chiavi (possibilmente milioni di esse) nidificate ai livelli più profondi. Ad esempio, supponiamo che tu abbia un bucket (DOC-EXAMPLE-BUCKET) con le seguenti chiavi:

sample.jpg

photos/2006/January/sample.jpg

photos/2006/February/sample2.jpg

photos/2006/February/sample3.jpg

photos/2006/February/sample4.jpg

Il bucket di esempio contiene solo l'oggetto sample.jpg a livello root. Per elencare solo gli oggetti a livello root nel bucket, invii una richiesta GET nel bucket con il carattere delimitatore della barra (/). In risposta, Amazon S3 restituisce la chiave dell'oggetto sample.jpg poiché non contiene il carattere delimitatore /. Tutte le altre chiavi contengono questo carattere. Amazon S3 raggruppa queste chiavi e restituisce un singolo elemento CommonPrefixes con il valore di prefisso photos/, che è una sottostringa dall'inizio di queste chiavi alla prima occorrenza del delimitatore specificato.

<ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Name>DOC-EXAMPLE-BUCKET</Name> <Prefix></Prefix> <Marker></Marker> <MaxKeys>1000</MaxKeys> <Delimiter>/</Delimiter> <IsTruncated>false</IsTruncated> <Contents> <Key>sample.jpg</Key> <LastModified>2011-07-24T19:39:30.000Z</LastModified> <ETag>&quot;d1a7fb5eab1c16cb4f7cf341cf188c3d&quot;</ETag> <Size>6</Size> <Owner> <ID>75cc57f09aa0c8caeab4f8c24e99d10f8e7faeebf76c078efc7c6caea54ba06a</ID> <DisplayName>displayname</DisplayName> </Owner> <StorageClass>STANDARD</StorageClass> </Contents> <CommonPrefixes> <Prefix>photos/</Prefix> </CommonPrefixes> </ListBucketResult>

Per ulteriori informazioni sull'elenco delle chiavi oggetto a livello di programmazione, consulta la sezione Elenco delle chiavi oggetto a livello di programmazione.