Indice
Upload dati sul bucket Object Storage S3
Un bucket S3 è essenzialmente un contenitore per gli oggetti (file) che desideri archiviare. Ogni bucket è identificato da un nome univoco a livello globale e può contenere un numero illimitato di oggetti. Quando carichi un file su S3, diventa un “oggetto” all’interno di un bucket, identificato da una chiave univoca (ossia il nome del file o un percorso specifico).
Come fare l’upload con OS Windows
- Aprire il software S3Browser
- Fare click sul bucket da gestire
- L’upload si esegue tramite la funzionalità “Drag & Drop”, pertanto, una volta trascinato il dato o la cartella, il browser S3, provvederà ad eseguire l’upload.
Se i dati caricati, non devono essere accessibili pubblicamente (come ad esempio, dati di un NAS, di una videocamera di sorveglianza o qualsiasi altra cosa che non deve essere visualizzata online), non occorre fare altre operazioni, se invece, i files caricati, sono inerenti ad esempio delle immagini di un sito web WordPress, bisogna rendere pubblici i files e le cartelle inserite.
Per fare questo, basta fare click sulla cartella dove sono contenute le immagini, e selezionare “permissions” dalla barra degli strumenti, e selezionare il permesso “Read” in “All Users”, in caso di cartella, applicare la modifica a tutte le sottocartelle/files, selezionando “Apply for all subfolders and files”, poi fare click su “Apply changes”
E’ possibile, nel caso in cui, ad esempio, il bucket utilizzato deve avere sempre una ACL Public, impostare questo di default. Per farlo, basta andare nelle proprietà del bucket con il software S3 Browser, e selezionare “Edit Bucket Policy” si aprirà una schermata in cui sarà necessario incollare il seguente contenuto JSON
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AddPerm", "Effect": "Allow", "Principal": "*", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::nome-bucket/nome-cartella/*" ] } ] }
Sostituire il valore nome-bucket e nome-cartella con i reali nomi dei valori. Una volta inserito, cliccare su “Apply”
Come fare l’upload con OS Linux e MAC
Eseguire in una shell SSH il seguente comando (la guida si basa sul software s3cmd):
[root@server ~]# s3cmd sync --recursive --no-preserve . s3://nome_del_bucket/cartella_di_destinazione
Il comando esegue l’upload all’interno del bucket, nella stessa struttura della cartella locale. Pertanto, se i files si trovano nella cartella /root/download, prima di eseguire il comando, bisogna spostarsi in “cd /root/download” e quindi eseguire il comando.
Nel caso in cui, i files caricati, devono essere visibili pubblicamente, procedere con il seguente comando:
[root@server ~]# s3cmd setacl --acl-public s3://nome_del_bucket --recursive
Nel precedente esempio, vengono resi pubblicamente tutti i files/cartelle, presenti nel bucket, nel caso in cui bisogna rendere pubblico solo una specifica cartella e/o files procedere con il percorso specifico, come ad esempio
[root@server ~]# s3cmd setacl --acl-public s3://nome_del_bucket/cartella/nomefile.txt OPPURE [root@server ~]# s3cmd setacl --acl-public s3://nome_del_bucket/cartella/ --recursive
Il primo esempio di comando, rende pubblico solamente 1 file, mentre il secondo, tutta la cartella comprensiva delle sottocartelle ed eventuali files.
E’ possibile, impostare la ACL pubblica di default, in modo molto semplice. Bisogna creare un JSON chiamato public-acl.json (o qualsiasi altro nome) ed incollare la seguente istruzione
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AddPerm", "Effect": "Allow", "Principal": "*", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::nome-bucket/nome-cartella/*" ] } ] }
Sostituire il valore nome-bucket e nome-cartella con i reali nomi dei valori. Una volta salvato il file, eseguire questo comando
[root@server ~]# s3cmd setpolicy public-acl.json s3://nome-bucket/
Così facendo, la ACL di default, saranno public e pertanto, ogni file inviato, avrà automaticamente la ACL pubblica, utile per esempio, se si utilizza il bucket, per i media di WordPress o altri file che hanno necessità di essere scaricati e/o visualizzati da terzi.