9 Comandi AWS S3 con esempi per la gestione di bucket e dati

Pubblicato: 2022-03-15

Il controllo e la gestione dei dati possono essere un compito faticoso. Questi comandi AWS S3 ti aiuteranno a gestire in modo rapido ed efficiente i tuoi bucket e i tuoi dati AWS S3.

AWS S3 è il servizio di storage di oggetti fornito da AWS. È il servizio di storage più utilizzato di AWS che può contenere virtualmente una quantità infinita di dati. È altamente disponibile, durevole e facile da integrare con molti altri servizi AWS.

AWS S3 può essere utilizzato da persone con qualsiasi esigenza come storage di applicazioni Web/mobile, storage di big data, storage di dati di machine learning, hosting di siti Web statici e molti altri.

Se hai utilizzato S3 nel tuo progetto, sapresti che, data la grande quantità di capacità di archiviazione, la gestione di centinaia di bucket e terabyte di dati in questi bucket può essere un lavoro impegnativo. Abbiamo un elenco di comandi AWS S3 con esempi che puoi utilizzare per gestire i tuoi bucket e dati AWS S3 in modo efficiente.

Configurazione dell'interfaccia a riga di comando di AWS

Dopo aver scaricato e installato con successo l'AWS CLI, devi configurare le credenziali AWS per poter accedere al tuo account e servizi AWS. Esaminiamo rapidamente come configurare AWS CLI.

Il primo passaggio consiste nel creare un utente con accesso programmatico all'account AWS. Ricorda di selezionare questa casella quando crei un utente per AWS CLI.

Concedi i permessi e crea un utente. Nella schermata finale dopo aver creato correttamente questo utente, copia l'ID chiave di accesso e la chiave di accesso segreta per questo utente. Utilizzeremo queste credenziali per accedere tramite l'AWS CLI.

Ora vai al terminale di tua scelta ed esegui il seguente comando.

 aws configurare

Immettere l'ID chiave di accesso e la chiave di accesso segreta quando richiesto. Seleziona qualsiasi regione AWS di tua scelta e il formato di output del comando. Personalmente preferisco usare il formato JSON. Questo non è un grosso problema, puoi sempre modificare questi valori in un secondo momento.

Ora puoi eseguire qualsiasi comando AWS CLI nella console. Esaminiamo ora i comandi AWS S3.

cp

Il comando cp copia semplicemente i dati da e verso i bucket S3. Può essere utilizzato per copiare file da locale a S3, da S3 a locale e tra due bucket S3. Ci sono molti altri parametri che puoi fornire con i comandi.

Ad esempio, il parametro -dryrun per testare il comando, il parametro –storage-class per specificare la classe di archiviazione dei dati in S3, altri parametri per impostare la crittografia e molto altro. Il comando cp ti dà il controllo completo su come configurare la sicurezza dei dati in S3.

Utilizzo

 aws s3 cp <FONTE> <DESTINAZIONE> [--opzioni]

Esempi

Copia i dati da locale a S3

 aws s3 cp nome_file.txt s3://nome_bucket/nome_file_2.txt

Copia i dati da S3 in locale

 aws s3 cp s3://nome_bucket/nome_file_2.txt nome_file.txt

Copia i dati tra i bucket S3

 aws s3 cp s3://nome_bucket/nome_file.txt s3://nome_bucket_2/nome_file_2.txt

Copia i dati da locale a S3 – IA

 aws s3 cp nome_file.txt s3://nome_bucket/nome_file_2.txt --storage-class STANDARD_IA

Copia tutti i dati da una cartella locale in S3

 aws s3 cp ./cartella_locale s3://nome_bucket --recursive

ls

Il comando ls viene utilizzato per elencare i bucket o il contenuto dei bucket. Quindi, se desideri semplicemente visualizzare le informazioni sui tuoi bucket o sui dati in questi bucket, puoi utilizzare il comando ls.

Utilizzo:

 aws s3 ls NONE o <BUCKET_NAME> [--opzioni]

Esempi

Elenca tutti i bucket nell'account

 aws s3 ls

Produzione:
2022-02-02 18:20:14 BUCKET_NAME_1
2022-03-20 13:12:43 BUCKET_NAME_2
2022-03-29 10:52:33 BUCKET_NAME_3

Questo comando elenca tutti i bucket nel tuo account con la data di creazione del bucket.

Elenca tutti gli oggetti di primo livello in un bucket

 aws s3 ls BUCKET_NAME_1 o s3://BUCKET_NAME_1 

Produzione:
                           PRE campionePrefisso/
2021-12-09 12:23:20 8754 file_1.png
2021-12-09 12:23:21 1290 file_2.json
2021-12-09 12:23:21 3088 file_3.html

Questo comando elenca tutti gli oggetti di primo livello in un bucket S3. Si noti qui che gli oggetti con il prefisso samplePrefix/ non vengono mostrati qui solo gli oggetti di livello superiore.

Elenca tutti gli oggetti in un secchio

 aws s3 ls BUCKET_NAME_1 o s3://BUCKET_NAME_1 --recursive

Produzione:
2021-12-09 12:23:20 8754 file_1.png
2021-12-09 12:23:21 1290 file_2.json
2021-12-09 12:23:21 3088 file_3.html
2021-12-09 12:23:20 16328 samplePrefix/file_1.txt
2021-12-09 12:23:20 29325 samplePrefix/sampleSubPrefix/file_1.css

Questo comando elenca tutti gli oggetti in un bucket S3. Si noti qui che vengono visualizzati anche gli oggetti con il prefisso samplePrefix/ e tutti i sottoprefissi.

mb

Il comando mb viene semplicemente utilizzato per creare nuovi bucket S3. Questo è un comando abbastanza semplice, ma per creare nuovi bucket, il nome del nuovo bucket deve essere univoco in tutti i bucket S3.

Utilizzo

 aws s3 mb <BUCKET_NAME>

Esempio

Crea un nuovo bucket in una regione specifica

 aws s3 mb myUniqueBucketName --region eu-west-1

mv

Il comando mv sposta semplicemente i dati da e verso i bucket S3. Proprio come il comando cp, il comando mv viene utilizzato per spostare i dati da locale a S3, da S3 a locale o tra due bucket S3.

L'unica differenza tra il comando mv e il comando cp è che quando si utilizza il comando mv il file viene eliminato dal sorgente. AWS sposta questo file nella destinazione. Ci sono molte opzioni che puoi specificare con il comando.

Utilizzo

 aws s3 mv <FONTE> <DESTINAZIONE> [--opzioni]

Esempi

Sposta i dati da locale a S3

 aws s3 mv nome_file.txt s3://nome_bucket/nome_file_2.txt

Sposta i dati da S3 a locale

 aws s3 mv s3://nome_bucket/nome_file_2.txt nome_file.txt

Sposta i dati tra i bucket S3

 aws s3 mv s3://nome_bucket/nome_file.txt s3://nome_bucket_2/nome_file_2.txt

Sposta i dati da locale a S3 – IA

 aws s3 mv nome_file.txt s3://nome_bucket/nome_file_2.txt --storage-class STANDARD_IA

Sposta tutti i dati da un prefisso in S3 in una cartella locale.

 aws s3 mv s3://bucket_name/somePrefix ./localFolder --recursive

presagire

Il comando presign genera un URL prefirmato per una chiave nel bucket S3. Puoi utilizzare questo comando per generare URL che possono essere utilizzati da altri per accedere a un file nella chiave del bucket S3 specificata.

Utilizzo

aws s3 presign <OBJECT_KEY> –expires-in <TIME_IN_SECONDS>

Esempio

Genera un URL prefirmato valido per 1 ora per un oggetto nel bucket.

 aws s3 presign s3://bucket_name/samplePrefix/file_name.png --expires-in 3600

Produzione:
https://s3.ap-south-1.amazonaws.com/bucket_name/samplePrefix/file_name.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIA4MCZT73PAX7ZMVFW%2F20220314%2Fap-south-1% 2Fs3%2Faws4_request&X-Amz-Date=20220314T054113Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=f14608bbf3e1f9f8d215eb5b439b87e167b1055bcd7a45c13a33debd

rb

Il comando rb viene semplicemente utilizzato per eliminare i bucket S3.

Utilizzo

 aws rb <BUCKET_NAME>

Esempio

Elimina un bucket S3.

 aws s3 mb myBucketName
# Questo comando non riesce se sono presenti dati in questo bucket.

Elimina un bucket S3 insieme ai dati nel bucket S3.

 aws s3 mb myBucketName --force

rm

Il comando rm viene semplicemente utilizzato per eliminare gli oggetti nei bucket S3.

Utilizzo

 aws s3 rm <S3Uri_To_The_File>

Esempi

Elimina un file dal bucket S3.

 aws s3 rm s3://nome_bucket/prefisso_campione/nome_file_2.txt

Elimina tutti i file con un prefisso specifico in un bucket S3.

 aws s3 rm s3://nome_bucket/prefisso_campione --recursive

Elimina tutti i file in un bucket S3.

 aws s3 rm s3://bucket_name --recursive

sincronizzare

Il comando di sincronizzazione copia e aggiorna i file dall'origine alla destinazione proprio come il comando cp. È importante comprendere la differenza tra il comando cp e sync. Quando usi cp, copia i dati dall'origine alla destinazione anche se i dati esistono già nella destinazione.

Inoltre, non eliminerà i file dalla destinazione se vengono eliminati dall'origine. Tuttavia, la sincronizzazione esamina la destinazione prima di copiare i dati e copia solo i file nuovi e aggiornati. Il comando di sincronizzazione è simile al commit e al push delle modifiche su un ramo remoto in git. Il comando di sincronizzazione offre molte opzioni per personalizzare il comando.

Utilizzo

 aws s3 sync <FONTE> <DESTINAZIONE> [--opzioni]

Esempi

Sincronizza la cartella locale su S3

 aws s3 sync ./cartella_locale s3://nome_bucket

Sincronizza i dati S3 in una cartella locale

 aws s3 sync s3://nome_bucket ./cartella_locale

Sincronizza i dati tra due bucket S3

 aws s3 sincronizzazione s3://nome_bucket s3://nome_bucket_2

Sposta i dati tra due bucket S3 escludendo tutti i file .txt

 aws s3 sync s3://nome_bucket s3://nome_bucket_2 --exclude "*.txt

sito web

Puoi utilizzare i bucket S3 per ospitare siti Web statici. Il comando website viene utilizzato per configurare l'hosting del sito Web statico S3 per il tuo bucket.

Specificare l'indice e i file di errore e S3 fornisce un URL in cui è possibile visualizzare il file.

Utilizzo

 sito web aws s3 <S3_URI> [--opzioni]

Esempio:

Configura l'hosting statico per un bucket S3 e specifica i file di indice e di errore

 sito Web aws s3 s3://bucket_name --index-document index.html --error-document error.html

Conclusione

Spero che quanto sopra ti dia un'idea su alcuni dei comandi AWS S3 utilizzati di frequente per gestire i bucket. Se sei interessato a saperne di più, puoi consultare i dettagli della certificazione AWS.