Amazon S3 är ett bra ställe att säkerhetskopiera och lagra dina filer billigt på molnet. Medan vissa använder den för att lagra sina personuppgifter finns det andra som använder den för att lagra bilder och skript för sina webbplatser, och även använda den som en CDN. På ditt skrivbord kan du enkelt komma åt och hantera ditt Amazon S3-konto med appar som S3Fox, CloudBerry, DragonDisk, etc., men vad händer om du behöver komma åt det från kommandoraden? Det här är där S3cmd kommer till nytta.

S3cmd är ett gratis kommandoradsverktyg för uppladdning, hämtning och hantering av data i Amazon S3. Annat än S3, stöder det även andra leverantörer av cloud storage-tjänster som använder S3-protokollet, till exempel Google Cloud Storage eller DreamHost DreamObjects. Den bästa användningen för det här verktyget finns på fjärrserver där allt är gjort på kommandoraden. Alternativt kan du också använda den för att skapa batchskript och automatisk säkerhetskopiering till S3.

S3cmd är skrivet i Python, så det handlar bara om att stödjas i alla operativsystem, så länge Python är installerat.

Installation

S3cmd finns i de flesta Linux-repositorier. I Debian / Ubuntu eller någon annan apt-based distro kan du installera S3cmd med kommandot:

 sudo apt-get installera s3cmd 

För Fedora, Centos eller någon annan yum-baserad distro:

 sudo yum installera s3cmd 

Alternativt kan du hämta källkoden, pakka ut paketet och köra installationsprogrammet:

 sudo python setup.py installera 

Komma igång

Innan du börjar, måste du ha din Amazon S3: s åtkomst och hemliga nycklar redo. Du kan hitta åtkomst- och hemtangenterna i Amazon Management Console.

För att komma igång, öppna terminalen och skriv:

 s3cmd - konfigurera 

Det uppmanar dig först att ange dina åtkomst- och hemtangenter.

Därefter måste du ange en krypteringsnyckel och sökvägen till GPG-programmet.

Efter krypteringsnyckeln är prompten att använda HTTPS-protokollet. Standardalternativet är "Nej", men du kan ställa in på "Ja" för en säkrare anslutning till Amazon S3. Observera att användningen av HTTPS-protokollet saktar över överföringshastigheten och kan inte användas om du använder en proxy.

När du har konfigurerat och testat inställningarna kan du fortsätta använda S3cmd. Om du behöver ändra inställningarna kan du antingen redigera filen .s3cfg i din hemkatalog eller köra s3cmd --configure igen.

Användande

För att se skoporna i ditt S3-konto kan du använda kommandot ls .

 s3cmd ls 

För att skapa en hink, använd kommandot mb :

 s3cmd mb s3: // test-s3cmd-hink 

Observera att du måste prefixa skopnamnet med "s3: //"

För att lista innehållet i en hink, använd kommandot ls tillsammans med skopnamnet. Till exempel:

 s3cmd ls s3: // test-s3cmd-hink 

Uppladdning av fil till hink

Det enklaste sättet att ladda upp en fil via S3cmd är med put kommandot. Till exempel:

 s3cmd sätta text.txt s3: // test-s3cmd-hink 

Dessutom kan du använda --encrypt parameter för att kryptera filen innan du laddar upp till S3.

 s3cmd sätta - krypterad text.txt s3: // test-s3cmd-hink 

Standardtillståndet för put kommandot är privat, vilket innebär att filen endast kan ses av dig. Om du behöver filen för att vara offentligt tillgänglig kan du lägga till parametern --acl-public

 s3cmd sätta --acl-public text.txt s3: // test-s3cmd-hink 

För mer granulär kontroll, använd --acl-grant=PERMISSION:EMAIL or USER_CANONICAL_ID . Till exempel:

 s3cmd sätta --acl-grant = läs: [email protected] text.txt s3: // test-s3cmd-bucket 

"PERMISSION" kan vara "läs", "skriv", "read_acp", "write_acp", "full_control", "all".

Hämtar filer från hinken

För att hämta en fil, använd kommandot get .

 s3cmd få s3: //test-s3cmd-bucket/text.txt text.txt 

För att ladda ner alla filer i hinken, lägg bara till --recursive parameter.

 s3cmd få - återkommande s3: // test-s3cmd-hink 

Radera filer från hinken

Ta bort kommandot för s3cmd är helt enkelt del . Till exempel:

 s3cmd del s3: //test-s3cmd-bucket/text.txt 

Du kan också använda --recursive parameteren för att radera alla filer i hinken.

 s3cmd del --recursive s3: // test-s3cmd-hink 

För mer S3cmd-kommandon, kolla in användarguiden här.

Avancerad användning: Synkronisera en mapp till S3

Låt oss säga att du lagrar alla dina viktiga filer i en mapp och du vill att den ska synkroniseras till S3. S3cmd levereras med ett sync som kan synkronisera den lokala mappen till fjärrdestinationen.

 s3cmd synkroniserad - borttagna ~ / SecretFolder s3: // my-secret-bucket / 

Allt du behöver göra är att skapa en cronjob för att köra synkroniseringskommandot regelbundet.

1. Öppna crontab.

 crontab -e 

2. Lägg till följande rad till slutet av crontab. Spara och lämna crontab.

 5 * * * * s3cmd synkroniserad - borttagna ~ / SecretFolder s3: // my-secret-bucket / 

Det är allt. Ditt system kommer nu att synkronisera den hemliga mappen till S3 var 5: e minut. Du kan ändra värdet för att köra synkroniseringskommandot med ditt önskade intervall. Varje fil du tar bort från den hemliga mappen kommer också att tas bort från S3.

Slutsats

För dem som behöver arbeta i kommandoradsmiljön är S3cmd ett utmärkt verktyg för att komma åt och hantera Amazon S3 från kommandoraden. Det är inte bara lätt att använda, det kommer också med många alternativ för avancerad användning och skriptbehov.