Amazon S3 er et godt sted at sikkerhedskopiere og gemme dine filer billigt på skyen. Mens nogle mennesker bruger det til at gemme deres personlige data, er der andre, der bruger det til at gemme billeder og scripts til deres websites, og endda bruge det som en CDN. På dit skrivebord kan du nemt få adgang til og administrere din Amazon S3-konto med apps som S3Fox, CloudBerry, DragonDisk osv., Men hvad hvis du har brug for at få adgang til det fra kommandolinjen? Det er her, hvor S3cmd kommer i brugbar.

S3cmd er et gratis kommandolinjeværktøj til upload, hentning og administration af data i Amazon S3. Bortset fra S3 understøtter den også andre cloud storage-tjenesteudbydere, der bruger S3-protokollen, såsom Google Cloud Storage eller DreamHost DreamObjects. Den bedste anvendelse til dette værktøj er på fjernserver, hvor alt er gjort på kommandolinjen. Alternativt kan du også bruge det til at oprette batch scripts og automatisk backup til S3.

S3cmd er skrevet i Python, så det handler kun om understøttet i alle operativsystemer, så længe Python er installeret.

Installation

S3cmd findes i de fleste Linux repositories. I Debian / Ubuntu eller en anden apt-based distro kan du installere S3cmd med kommandoen:

 sudo apt-get install s3cmd 

For Fedora, Centos eller enhver anden yum-baseret distro:

 sudo yum installere s3cmd 

Alternativt kan du downloade kildekoden, pakke pakken ud og køre installationsprogrammet:

 sudo python setup.py installere 

Kom i gang

Før du kommer i gang, skal du have din Amazon S3's adgangs- og hemmelige nøgler klar. Du kan finde adgangs- og hemmelige taster i Amazon Management Console.

For at komme i gang skal du åbne terminalen og skrive:

 s3cmd - konfiguration 

Det vil først bede dig om at indtaste dine adgangs- og hemmelige taster.

Derefter skal du indtaste en krypteringsnøgle og stien til GPG-programmet.

Efter krypteringsnøglen er spørgsmålet om at bruge HTTPS-protokollen. Standardindstillingen er "Nej", men du kan indstille til "Ja" for en mere sikker forbindelse til Amazon S3. Bemærk at brug af HTTPS-protokollen sænker overførselshastigheden og kan ikke bruges, hvis du bruger en proxy.

Når du har konfigureret og testet indstillingerne, kan du fortsætte med at bruge S3cmd. Hvis du har brug for at ændre indstillingerne, kan du enten redigere .s3cfg- filen i din s3cmd --configure eller køre kommandoen s3cmd --configure igen.

Anvendelse

For at se spandene i din S3-konto kan du bruge kommandoen ls .

 s3cmd ls 

For at oprette en spand skal du bruge kommandoen mb :

 s3cmd mb s3: // test-s3cmd-bucket 

Bemærk at du skal prefikse bucket navn med "s3: //"

For at liste indholdet i en spand, skal du bruge kommandoen ls sammen med spandenavnet. For eksempel:

 s3cmd ls s3: // test-s3cmd-bucket 

Uploader fil til bucket

Den nemmeste måde at uploade en fil via S3cmd er med put kommandoen. For eksempel:

 s3cmd sætte tekst.txt s3: // test-s3cmd-bucket 

Derudover kan du bruge --encrypt parameter til at kryptere filen før upload til S3.

 s3cmd sætte - krypteret tekst.txt s3: // test-s3cmd-bucket 

Standardtilladelsen til put kommandoen er privat, hvilket betyder, at filen kun kan ses af dig. Hvis du har brug for filen for at være offentligt tilgængelig, kan du tilføje parameteren --acl-public

 s3cmd sætte --acl-public text.txt s3: // test-s3cmd-bucket 

For mere granulær kontrol skal du bruge --acl-grant=PERMISSION:EMAIL or USER_CANONICAL_ID . For eksempel:

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

"PERMISSION" kan være "læse", "skrive", "read_acp", "write_acp", "full_control", "all".

Henter filer fra bucket

For at hente en fil skal du bruge kommandoen get .

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

For at downloade alle filer i spanden skal du blot tilføje den - --recursive parameter.

 s3cmd få - recursive s3: // test-s3cmd-bucket 

Sletning af filer fra bucket

Slet kommandoen til s3cmd er simpelthen del . For eksempel:

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

Du kan også bruge --recursive parameteren til at slette alle filer i bucket.

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

For flere S3cmd kommandoer, tjek dens brugervejledning her.

Avanceret brug: Synkroniser en mappe til S3

Lad os sige, at du gemmer alle dine vigtige filer i en mappe, og du vil have, at den skal synkroniseres til S3. S3cmd leveres med en sync som kan synkronisere den lokale mappe til fjerndestinationen.

 s3cmd synkronisering - fjernet fjernet ~ / SecretFolder s3: // my-secret-bucket / 

Alt du skal gøre er at oprette en cronjob for at køre synkroniseringskommandoen regelmæssigt.

1. Åbn crontab.

 crontab -e 

2. Tilføj følgende linje til slutningen af ​​crontab. Gem og afslut crontab.

 5 * * * * s3cmd synkronisering - fjernet fjernet ~ / SecretFolder s3: // my-secret-bucket / 

Det er det. Dit system vil nu synkronisere den hemmelige mappe til S3 hvert 5. minut. Du kan ændre værdien for at køre synkroniseringskommandoen i dit foretrukne interval. Hver fil, du fjernede fra den hemmelige mappe, fjernes også fra S3.

Konklusion

For dem, der har brug for at arbejde i kommandolinjemiljøet, er S3cmd virkelig et godt værktøj til at få adgang til og administrere Amazon S3 fra kommandolinjen. Det er ikke kun det nemt at bruge, det kommer også med masser af muligheder for avanceret brug og scripting behov.