Usa comandi di alto livello (s3) con AWS CLI - AWS Command Line Interface

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à.

Usa comandi di alto livello (s3) con AWS CLI

Questo argomento descrive alcuni dei comandi che è possibile utilizzare per gestire i bucket e gli oggetti Amazon S3 utilizzando i comandi presenti in. AWS CLIPer i comandi non trattati in questo argomento e per altri esempi di comandi, consulta i comandi nella AWS CLI Guida di riferimento.

I aws s3 comandi di alto livello semplificano la gestione degli oggetti Amazon S3. Questi comandi consentono di gestire i contenuti di Amazon S3 all'interno di se stesso e con le directory locali.

Prerequisiti

Per eseguire i s3 comandi, devi:

Prima di iniziare

Questa sezione descrive alcune cose da tenere a mente prima di utilizzare aws s3 i comandi.

Caricamenti di oggetti di grandi dimensioni

Quando usi aws s3 i comandi per caricare oggetti di grandi dimensioni in un bucket Amazon S3, esegue AWS CLI automaticamente un caricamento in più parti. Non puoi riprendere un caricamento non riuscito quando usi questi comandi. aws s3

Se il caricamento in più parti non riesce a causa di un timeout o se l'hai annullato manualmente in AWS CLI, AWS CLI interrompe il caricamento e ripulisce tutti i file che sono stati creati. Questo processo può richiedere alcuni minuti.

Se il processo di caricamento o pulizia in più parti viene annullato da un comando kill o da un errore di sistema, i file creati rimangono nel bucket Amazon S3.

Proprietà e tag dei file nelle copie multiparte

Quando utilizzi la AWS CLI versione 1 dei comandi nello spazio dei aws s3 nomi per copiare un file da una posizione del bucket Amazon S3 a un'altra posizione del bucket Amazon S3 e tale operazione utilizza la copia multiparte, nessuna proprietà del file dall'oggetto di origine viene copiata nell'oggetto di destinazione.

Per impostazione predefinita, i comandi della AWS CLI versione 2 nello spazio dei s3 nomi che eseguono copie in più parti trasferiscono tutti i tag e il seguente set di proprietà dalla copia di origine a quella di destinazione: content-type content-languagecontent-encoding,content-disposition,,cache-control,expires, emetadata.

Ciò può comportare chiamate AWS API aggiuntive all'endpoint Amazon S3 che non sarebbero state effettuate se avessi utilizzato AWS CLI la versione 1. Questi possono includere: HeadObject, GetObjectTagging e PutObjectTagging.

Se devi modificare questo comportamento predefinito nei comandi della AWS CLI versione 2, usa il --copy-props parametro per specificare una delle seguenti opzioni:

  • default: il valore predefinito. Specifica che la copia include tutti i tag collegati all'oggetto di origine e le proprietà racchiuse nel parametro --metadata-directive utilizzato per le copie non multipart: content-type, content-language, content-encoding, content-disposition, cache-control, expires e metadata.

  • direttiva sui metadati: specifica che la copia include solo le proprietà incluse nel parametro utilizzato per le copie non costituite da più parti. --metadata-directive Non copia alcun tag.

  • nessuna: specifica che la copia non include nessuna delle proprietà dell'oggetto di origine.

Creazione di un bucket

Utilizzate il comando per creare un bucket. I nomi dei bucket devono essere univoci a livello globale (unici in tutto Amazon S3) e conformi al DNS.

Possono includere lettere minuscole, numeri, trattini e punti. Possono iniziare e terminare solo con una lettera o un numero e non possono contenere un punto accanto a un trattino o a un altro periodo.

Sintassi

$ aws s3 mb <target> [--options]

L'esempio seguente crea il s3://bucket-name bucket.

$ aws s3 mb s3://bucket-name

Elenca i bucket e gli oggetti

Per elencare i tuoi bucket, cartelle o oggetti, usa il comando. Se si utilizza il comando senza destinazione o opzioni, vengono elencati tutti i bucket.

Sintassi

$ aws s3 ls <target> [--options]

Per alcune opzioni comuni da utilizzare con questo comando ed esempi, vedereOpzioni utilizzate di frequente per i comandi s3. Per un elenco completo delle opzioni disponibili, vedere nella Guida ai AWS CLI comandi.

L'esempio seguente elenca tutti i bucket Amazon S3.

$ aws s3 ls 2018-12-11 17:08:50 my-bucket 2018-12-14 14:55:44 my-bucket2

Il comando seguente elenca tutti gli oggetti e i prefissi in un bucket. In questo output di esempio, il prefisso example/ ha un solo file denominato. MyFile1.txt

$ aws s3 ls s3://bucket-name PRE example/ 2018-12-04 19:05:48 3 MyFile1.txt

Puoi filtrare l'output per un determinato prefisso includendolo nel comando. Il comando seguente elenca gli oggetti in bucket-name/example/ (ovvero, gli oggetti in bucket-name filtrati dal prefisso example/).

$ aws s3 ls s3://bucket-name/example/ 2018-12-06 18:59:32 3 MyFile1.txt

Eliminazione di bucket

Per eliminare un bucket, usa il comando.

Sintassi

$ aws s3 rb <target> [--options]

L'esempio seguente rimuove il bucket. s3://bucket-name

$ aws s3 rb s3://bucket-name

Per default, perché l'operazione riesca il bucket deve essere vuoto. Per rimuovere un bucket che non è vuoto, devi includere l'--forceopzione. Se stai usando un bucket con versione che contiene oggetti precedentemente eliminati, ma mantenuti, questo comando non ti consente di rimuovere il bucket. Devi prima rimuovere tutti i contenuti.

L'esempio seguente elimina tutti gli oggetti e i prefissi nel bucket, quindi elimina il bucket.

$ aws s3 rb s3://bucket-name --force

Eliminazione di oggetti

Per eliminare oggetti in un bucket o nella directory locale, utilizzate il comando.

Sintassi

$ aws s3 rm <target> [--options]

Per alcune opzioni comuni da utilizzare con questo comando ed esempi, consultaOpzioni utilizzate di frequente per i comandi s3. Per un elenco completo delle opzioni, vedere nella Guida ai AWS CLI comandi.

L'esempio seguente elimina filename.txt da. s3://bucket-name/example

$ aws s3 rm s3://bucket-name/example/filename.txt

L'esempio seguente elimina tutti gli oggetti dall's3://bucket-name/exampleutilizzo dell'--recursiveopzione.

$ aws s3 rm s3://bucket-name/example --recursive

Spostare oggetti

Utilizzate il comando per spostare oggetti da un bucket o da una directory locale. Il s3 mv comando copia l'oggetto o il file di origine nella destinazione specificata, quindi elimina l'oggetto o il file di origine.

Sintassi

$ aws s3 mv <source> <target> [--options]

Per alcune opzioni comuni da utilizzare con questo comando ed esempi, vedereOpzioni utilizzate di frequente per i comandi s3. Per un elenco completo delle opzioni disponibili, vedere nella Guida ai AWS CLI comandi.

avvertimento

Se utilizzi qualsiasi tipo di ARN o alias di access point negli URI di origine o destinazione di Amazon S3, devi prestare particolare attenzione che gli URI Amazon S3 di origine e destinazione si risolvano in diversi bucket sottostanti. Se i bucket di origine e di destinazione coincidono, il file o l'oggetto di origine può essere spostato su se stesso, il che può comportare l'eliminazione accidentale del file o dell'oggetto di origine. Per verificare che i bucket di origine e di destinazione non siano gli stessi, utilizzate il --validate-same-s3-paths parametro o impostate la variabile AWS_CLI_S3_MV_VALIDATE_SAME_S3_PATHS di ambiente su. true

L'esempio seguente sposta tutti gli oggetti da as3://bucket-name/example. s3://my-bucket/

$ aws s3 mv s3://bucket-name/example s3://my-bucket/

L'esempio seguente sposta un file locale dalla directory di lavoro corrente al bucket Amazon S3 con il comando. s3 mv

$ aws s3 mv filename.txt s3://bucket-name

L'esempio seguente sposta un file dal bucket Amazon S3 alla directory di lavoro corrente, dove ./ specifica la directory di lavoro corrente.

$ aws s3 mv s3://bucket-name/filename.txt ./

Copia oggetti

Usa il comando per copiare oggetti da un bucket o da una directory locale.

Sintassi

$ aws s3 cp <source> <target> [--options]

È possibile utilizzare il parametro dash per lo streaming di file su standard input (stdin) o standard output (stdout).

avvertimento

Se lo stai usando PowerShell, la shell potrebbe alterare la codifica di un CRLF o aggiungere un CRLF all'input o all'output piped o all'output reindirizzato.

Il s3 cp comando utilizza la seguente sintassi per caricare un flusso di file da un bucket specificato. stdin

Sintassi

$ aws s3 cp - <target> [--options]

Il s3 cp comando utilizza la seguente sintassi per scaricare un flusso di file Amazon S3 per. stdout

Sintassi

$ aws s3 cp <target> [--options] -

Per alcune opzioni comuni da usare con questo comando ed esempi, consulta. Opzioni utilizzate di frequente per i comandi s3 Per l'elenco completo delle opzioni, vedere nella Guida ai AWS CLI comandi.

L'esempio seguente copia tutti gli oggetti da s3://bucket-name/example as3://my-bucket/.

$ aws s3 cp s3://bucket-name/example s3://my-bucket/

L'esempio seguente copia un file locale dalla directory di lavoro corrente al bucket Amazon S3 con il comando. s3 cp

$ aws s3 cp filename.txt s3://bucket-name

L'esempio seguente copia un file dal bucket Amazon S3 nella directory di lavoro corrente, dove ./ specifica la directory di lavoro corrente.

$ aws s3 cp s3://bucket-name/filename.txt ./

L'esempio seguente utilizza echo per trasmettere il testo «hello world» al file. s3://bucket-name/filename.txt

$ echo "hello world" | aws s3 cp - s3://bucket-name/filename.txt

L'esempio seguente trasmette il s3://bucket-name/filename.txt file alla console stdout e ne stampa il contenuto.

$ aws s3 cp s3://bucket-name/filename.txt - hello world

L'esempio seguente trasmette il contenuto di s3://bucket-name/pre tostdout, utilizza il bzip2 comando per comprimere i file e carica il nuovo file compresso denominato to. key.bz2 s3://bucket-name

$ aws s3 cp s3://bucket-name/pre - | bzip2 --best | aws s3 cp - s3://bucket-name/key.bz2

Sincronizza oggetti

Il comando sincronizza il contenuto di un bucket e una directory o il contenuto di due bucket. In genere, s3 sync copia file o oggetti mancanti o obsoleti tra l'origine e la destinazione. Tuttavia, puoi anche utilizzare l'opzione --delete per rimuovere dalla destinazione i file o gli oggetti non presenti nell'origine.

Sintassi

$ aws s3 sync <source> <target> [--options]

Per alcune opzioni comuni da utilizzare con questo comando ed esempi, vedereOpzioni utilizzate di frequente per i comandi s3. Per un elenco completo delle opzioni, vedere nella Guida ai AWS CLI comandi.

L'esempio seguente sincronizza il contenuto di un prefisso Amazon S3 denominato path nel bucket denominato my-bucket con la directory di lavoro corrente.

s3 syncaggiorna tutti i file che hanno una dimensione o un'ora di modifica diversi dai file con lo stesso nome nella destinazione. L'output mostra le operazioni specifiche eseguite durante la sincronizzazione. Si noti che l'operazione sincronizza in modo ricorsivo la sottodirectory MySubdirectory e il suo contenuto con. s3://my-bucket/path/MySubdirectory

$ aws s3 sync . s3://my-bucket/path upload: MySubdirectory\MyFile3.txt to s3://my-bucket/path/MySubdirectory/MyFile3.txt upload: MyFile2.txt to s3://my-bucket/path/MyFile2.txt upload: MyFile1.txt to s3://my-bucket/path/MyFile1.txt

L'esempio seguente, che estende quello precedente, mostra come utilizzare l'opzione. --delete

// Delete local file $ rm ./MyFile1.txt // Attempt sync without --delete option - nothing happens $ aws s3 sync . s3://my-bucket/path // Sync with deletion - object is deleted from bucket $ aws s3 sync . s3://my-bucket/path --delete delete: s3://my-bucket/path/MyFile1.txt // Delete object from bucket $ aws s3 rm s3://my-bucket/path/MySubdirectory/MyFile3.txt delete: s3://my-bucket/path/MySubdirectory/MyFile3.txt // Sync with deletion - local file is deleted $ aws s3 sync s3://my-bucket/path . --delete delete: MySubdirectory\MyFile3.txt // Sync with Infrequent Access storage class $ aws s3 sync . s3://my-bucket/path --storage-class STANDARD_IA

Quando si utilizza l'--deleteopzione, le --include opzioni --exclude e possono filtrare file o oggetti da eliminare durante un's3 syncoperazione. In questo caso, la stringa di parametro deve specificare i file da escludere o includere per l'eliminazione nel contesto della directory o del bucket di destinazione. Di seguito viene riportato un esempio.

Assume local directory and s3://my-bucket/path currently in sync and each contains 3 files: MyFile1.txt MyFile2.rtf MyFile88.txt ''' // Sync with delete, excluding files that match a pattern. MyFile88.txt is deleted, while remote MyFile1.txt is not. $ aws s3 sync . s3://my-bucket/path --delete --exclude "path/MyFile?.txt" delete: s3://my-bucket/path/MyFile88.txt ''' // Sync with delete, excluding MyFile2.rtf - local file is NOT deleted $ aws s3 sync s3://my-bucket/path . --delete --exclude "./MyFile2.rtf" download: s3://my-bucket/path/MyFile1.txt to MyFile1.txt ''' // Sync with delete, local copy of MyFile2.rtf is deleted $ aws s3 sync s3://my-bucket/path . --delete delete: MyFile2.rtf

Opzioni utilizzate di frequente per i comandi s3

Le seguenti opzioni vengono utilizzate di frequente per i comandi descritti in questo argomento. Per un elenco completo delle opzioni che è possibile utilizzare su un comando, vedere il comando specifico nella alla AWS CLI versione 2 della guida di riferimento.

acl

s3 synce s3 cp può usare l'--aclopzione. Ciò consente di impostare le autorizzazioni di accesso per i file copiati su Amazon S3. L'opzione --acl accetta i valori private, public-read e public-read-write. Per ulteriori informazioni, consulta Canned ACL nella Guida per l'utente di Amazon Simple Storage Service.

$ aws s3 sync . s3://my-bucket/path --acl public-read
escludere

Quando si utilizza il s3 rm comando s3 cps3 mv,s3 sync, o, è possibile filtrare i risultati utilizzando l'--includeopzione --exclude o. L'--excludeopzione imposta le regole per escludere solo gli oggetti dal comando e le opzioni vengono applicate nell'ordine specificato. Questo viene mostrato nell'esempio seguente.

Local directory contains 3 files: MyFile1.txt MyFile2.rtf MyFile88.txt // Exclude all .txt files, resulting in only MyFile2.rtf being copied $ aws s3 cp . s3://my-bucket/path --exclude "*.txt" // Exclude all .txt files but include all files with the "MyFile*.txt" format, resulting in, MyFile1.txt, MyFile2.rtf, MyFile88.txt being copied $ aws s3 cp . s3://my-bucket/path --exclude "*.txt" --include "MyFile*.txt" // Exclude all .txt files, but include all files with the "MyFile*.txt" format, but exclude all files with the "MyFile?.txt" format resulting in, MyFile2.rtf and MyFile88.txt being copied $ aws s3 cp . s3://my-bucket/path --exclude "*.txt" --include "MyFile*.txt" --exclude "MyFile?.txt"
includere

Quando si utilizza il s3 rm comando s3 cps3 mv,s3 sync, o, è possibile filtrare i risultati utilizzando l'--includeopzione --exclude o. L'--includeopzione imposta le regole per includere solo gli oggetti specificati per il comando e le opzioni si applicano nell'ordine specificato. Questo viene mostrato nell'esempio seguente.

Local directory contains 3 files: MyFile1.txt MyFile2.rtf MyFile88.txt // Include all .txt files, resulting in MyFile1.txt and MyFile88.txt being copied $ aws s3 cp . s3://my-bucket/path --include "*.txt" // Include all .txt files but exclude all files with the "MyFile*.txt" format, resulting in no files being copied $ aws s3 cp . s3://my-bucket/path --include "*.txt" --exclude "MyFile*.txt" // Include all .txt files, but exclude all files with the "MyFile*.txt" format, but include all files with the "MyFile?.txt" format resulting in MyFile1.txt being copied $ aws s3 cp . s3://my-bucket/path --include "*.txt" --exclude "MyFile*.txt" --include "MyFile?.txt"
concessione

I comandi s3 cp, s3 mv e s3 sync includono un'opzione --grants che può essere utilizzata per concedere autorizzazioni sull'oggetto a utenti o gruppi specificati. Imposta l'--grantsopzione su un elenco di autorizzazioni utilizzando la seguente sintassi. Sostituisci Permission, Grantee_Type e Grantee_ID con il tuo valore.

Sintassi

--grants Permission=Grantee_Type=Grantee_ID [Permission=Grantee_Type=Grantee_ID ...]

Ogni valore contiene i seguenti elementi:

  • Autorizzazione: specifica le autorizzazioni concesse. Può essere impostato suread, readaclwriteacl, o. full

  • Grantee_Type: specifica come identificare il beneficiario. Può essere impostato su, o. uri emailaddress id

  • Grantee_ID – Specifica l'assegnatario dell'autorizzazione in base a Grantee_Type.

    • uri— L'URI del gruppo. Per ulteriori informazioni, vedi Chi è un beneficiario?

    • emailaddress - L'indirizzo e-mail dell'account.

    • id - L'ID canonico dell'account

Per ulteriori informazioni sul controllo degli accessi di Amazon S3, consulta Controllo degli accessi.

L'esempio seguente copia un oggetto in un bucket. Concede read le autorizzazioni sull'oggetto a tutti e full le autorizzazioni (readreadacl, ewriteacl) all'account associato a. user@example.com

$ aws s3 cp file.txt s3://my-bucket/ --grants read=uri=http://acs.amazonaws.com/groups/global/AllUsers full=emailaddress=user@example.com

Puoi anche specificare una classe di storage non predefinita (REDUCED_REDUNDANCYoSTANDARD_IA) per gli oggetti che carichi su Amazon S3. Per farlo, utilizza l'opzione --storage-class.

$ aws s3 cp file.txt s3://my-bucket/ --storage-class REDUCED_REDUNDANCY
recursive

Quando utilizzi questa opzione, il comando viene eseguito su tutti i file o gli oggetti nella directory o nel prefisso specificato. L'esempio seguente elimina tutto s3://my-bucket/path il relativo contenuto.

$ aws s3 rm s3://my-bucket/path --recursive

Risorse

AWS CLI riferimento:

Riferimento del servizio: