Utilizzo dei comandi di alto livello (s3) con laAWS CLI - AWS Command Line Interface

Python 2.7, 3.4 e 3.5 sono deprecati perAWS CLIversione 1. Per ulteriori informazioni, consulta laAWS CLIsezione versione 1 diInformazioni suAWS CLIversioni.

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

Utilizzo dei comandi di alto livello (s3) con laAWS CLI

Questo argomento descrive come gestire bucket e oggetti Amazon S3 utilizzando laaws s3Comandi nellaAWS CLI.

di alto livelloaws s3i comandi semplificano la gestione degli oggetti Amazon S3. Questi comandi consentono di gestire il contenuto di Amazon S3 all'interno di sé e con le directory locali.

Nota

Quando si utilizzaaws s3comandi per caricare oggetti di grandi dimensioni in un bucket Amazon S3, ilAWS CLIesegue automaticamente un caricamento in più parti. Non è possibile riprendere un caricamento fallito durante l'utilizzo di questiaws s3comandi.

Se il caricamento multiparte ha esito negativo a causa di un timeout o se è stato annullato manualmente nelAWS CLI, ilAWS CLIinterrompe il caricamento e pulisce tutti i file creati. Questo processo può richiedere alcuni minuti.

Se il processo di caricamento o pulizia multiparte viene annullato da un comando kill o da un errore di sistema, i file creati rimangono nel bucket Amazon S3. Per ripulire il caricamento multiparte, usa ils3api abort-multipart-uploadcomando.

Per ulteriori informazioni, consultaPanoramica del caricamento in più partinellaGuida per l'utente di Amazon Simple Stor.

Prerequisites

Per eseguires3comandi, è necessario:

  • AWS CLIinstallato, vediInstallazione, aggiornamento e disinstallazione dell'AWS CLIper ulteriori informazioni.

  • AWS CLIconfigurato, vediNozioni di base sulla configurazioneper ulteriori informazioni. Il profilo utilizzato deve disporre di autorizzazioni che consentano laAWSoperazioni eseguite dagli esempi.

  • Comprendi i termini di Amazon S3:

    • Bucket- Una cartella Amazon S3 di primo livello.

    • Prefisso— Una cartella Amazon S3 in un bucket.

    • Oggetto- Qualsiasi elemento ospitato in un bucket Amazon S3.

Creazione di un bucket

Utilizzo dell's3 mbcomando per creare un secchio. I nomi dei bucket devono esserea livello globaleunivoco (univoco in tutto Amazon S3) e dovrebbe essere compatibile con 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 files3://bucket-nameBucket.

$ aws s3 mb s3://bucket-name

Elenca bucket e oggetti

Per elencare i bucket, le cartelle o gli oggetti, utilizzare ils3 lscomando. Utilizzando il comando senza una destinazione o opzioni elenca tutti i bucket.

Sintassi

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

Per alcune opzioni comuni da utilizzare con questo comando ed esempi, vedereOpzioni di uso frequente per i comandi s3. Per un elenco completo delle opzioni disponibili, consultas3 lsnellaAWS CLIRiferimento ai 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 inclusi in un bucket. In questo esempio di output, il prefissoexample/ha un file denominatoMyFile1.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 innome/esempio/(cioè oggetti inbucket-namefiltrato dal prefissoesempio/).

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

Eliminazione di bucket

Per eliminare un bucket, utilizzare il buckets3 rbcomando.

Sintassi

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

L'esempio seguente rimuove las3://bucket-nameBucket.

$ aws s3 rb s3://bucket-name

Per default, perché l'operazione riesca il bucket deve essere vuoto. Per rimuovere un bucket che non è vuoto, è necessario includere la--forceopzione. Se utilizzi un bucket con versioni di versioni contenenti oggetti precedentemente eliminati, ma conservati, questo comando lo fanotconsente di rimuovere il secchio. Devi prima rimuovere tutti i contenuti.

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

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

Eliminare oggetti

Per eliminare oggetti in un bucket o nella directory locale, utilizzare ils3 rmcomando.

Sintassi

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

Per alcune opzioni comuni da utilizzare con questo comando ed esempi, vedereOpzioni di uso frequente per i comandi s3. Per un elenco completo delle opzioni, consultas3 rmnellaAWS CLIRiferimento ai comandi.

L'esempio seguente eliminafilename.txtfroms3://bucket-name/example.

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

L'esempio seguente elimina tutti gli oggetti das3://bucket-name/exampleutilizzando il file--recursiveopzione.

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

Spostare oggetti

Utilizzo dell's3 mvcomando per spostare oggetti da un bucket o da una directory locale.

Sintassi

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

Per alcune opzioni comuni da utilizzare con questo comando ed esempi, vedereOpzioni di uso frequente per i comandi s3. Per un elenco completo delle opzioni disponibili, consultas3 mvnellaAWS CLIRiferimento ai comandi.

L'esempio seguente sposta tutti gli oggetti das3://bucket-name/exampleDa as3://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 las3 cpcomando.

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

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

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

Copia oggetti

Utilizzo dell's3 cpcomando 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 input standard (stdin) o uscita standard (stdout).

avvertimento

Se si utilizza PowerShell, la shell potrebbe modificare la codifica di un CRLF o aggiungere un CRLF all'ingresso o all'output con tubazione o all'output reindirizzato.

Las3 cpIl comando utilizza la sintassi seguente per caricare un flusso di file dastdina un bucket specifico.

Sintassi

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

Las3 cpcomando utilizza la seguente sintassi per scaricare un flusso di file Amazon S3 perstdout.

Sintassi

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

Per alcune opzioni comuni da utilizzare con questo comando ed esempi, vedereOpzioni di uso frequente per i comandi s3. Per l'elenco completo delle opzioni, consultas3 cpnellaAWS CLIRiferimento ai comandi.

L'esempio seguente copia tutti gli oggetti da:s3://bucket-name/exampleDa 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 nel bucket Amazon S3 con las3 cpcomando.

$ 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» als3://bucket-name/filename.txtfile.

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

L'esempio seguente esegue lo streaming dels3://bucket-name/filename.txtfile astdoute stampa il contenuto nella console.

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

L'esempio seguente riproduce il contenuto dis3://bucket-name/preDa astdout, utilizza ilbzip2comando per comprimere i file e carica il nuovo file compresso denominatokey.bz2Da as3://bucket-name.

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

Sincronizza

Las3 syncil comando sincronizza il contenuto di un bucket e una directory o il contenuto di due bucket. In genere,s3 synccopia i file o gli oggetti aggiornati o mancanti 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 di uso frequente per i comandi s3. Per un elenco completo delle opzioni, consultas3 syncnellaAWS CLIRiferimento ai comandi.

L'esempio seguente sincronizza il contenuto di un prefisso Amazon S3 denominatopathnel bucket denominatomio bucketcon la directory di lavoro corrente.

s3 syncaggiorna tutti i file che hanno dimensioni o tempi modificati diversi da quelli con lo stesso nome nella destinazione. L'output mostra le operazioni specifiche eseguite durante la sincronizzazione. Notare che l'operazione sincronizza ricorsivamente la sottodirectoryMySubdirectorye il suo contenuto cons3://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 amplia quello precedente, mostra come utilizzare l'--deleteopzione.

// 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 il file--deleteopzione, il--excludee--includele opzioni possono filtrare file o oggetti da eliminare durante uns3 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 di uso frequente per i comandi s3

Le seguenti opzioni vengono utilizzate frequentemente per i comandi descritti in questo argomento. Per un elenco completo delle opzioni che è possibile utilizzare su un comando, vedere il comando specifico nellaAWS CLIRiferimento ai comandi.

acl

s3 synces3 cppuò utilizzare il--aclopzione. Ciò consente di impostare le autorizzazioni di accesso per i file copiati in Amazon S3. L'opzione --acl accetta i valori private, public-read e public-read-write. Per ulteriori informazioni, consultaACL predefinitanellaGuida per l'utente di Amazon Simple Stor.

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

Quando si utilizza il files3 cp,s3 mv,s3 sync, oppures3 rmcomando, è possibile filtrare i risultati utilizzando la--excludeo--includeopzione. La--excludel'opzione imposta le regole per escludere solo gli oggetti dal 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 // 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"
include

Quando si utilizza il files3 cp,s3 mv,s3 sync, oppures3 rmcomando, è possibile filtrare i risultati utilizzando il--excludeo--includeopzione. La--includel'opzione 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. Impostazione della proprietà--grantsopzione per un elenco di autorizzazioni utilizzando la sintassi seguente. Replace (Sostituisci)Permission,Grantee_Type, eGrantee_IDcon i tuoi valori.

Sintassi

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

Ogni valore contiene i seguenti elementi:

  • Permission— Specifica le autorizzazioni concesse. Può essere impostato suread,readacl,writeacl, oppurefull.

  • Grantee_Type— Specifica come identificare il beneficiario. Può essere impostato suuri,emailaddress, oppureid.

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

Per ulteriori informazioni sul controllo accessi Amazon S3, consultaControllo degli accessi.

L'esempio seguente copia un oggetto in un bucket. Concessionereadautorizzazioni sull'oggetto per tutti efullautorizzazioni (read,readacl, ewriteacl) sul conto associato auser@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

È inoltre possibile specificare una classe di storage non predefinita (REDUCED_REDUNDANCYoSTANDARD_IA) per gli oggetti caricati su Amazon S3. Per farlo, utilizza l'opzione --storage-class.

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

Quando si utilizza questa opzione, il comando viene eseguito su tutti i file o gli oggetti nella directory o nel prefisso specificati. L'esempio seguente eliminas3://my-bucket/pathe tutto il suo contenuto.

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

Resources

AWS CLIriferimento:

Service Reference: