Amazon S3 is een goede plaats om een ​​back-up van uw bestanden te maken en deze goedkoop op te slaan in de cloud. Terwijl sommige mensen het gebruiken om hun persoonlijke gegevens op te slaan, zijn er anderen die het gebruiken om afbeeldingen en scripts op te slaan voor hun websites, en zelfs gebruiken als een CDN. Op uw bureaublad kunt u uw Amazon S3-account eenvoudig openen en beheren met apps zoals S3Fox, CloudBerry, DragonDisk, enz., Maar wat als u het via de opdrachtregel moet openen? Dit is waar S3cmd nuttig is.

S3cmd is een gratis opdrachtregelprogramma voor het uploaden, ophalen en beheren van gegevens in Amazon S3. Anders dan S3 ondersteunt het ook andere cloudopslagserviceproviders die gebruikmaken van het S3-protocol, zoals Google Cloud Storage of DreamHost DreamObjects. Het beste gebruik voor deze tool is op een externe server waar alles op de opdrachtregel staat. U kunt het ook gebruiken om batchtyams en geautomatiseerde back-up naar S3 te maken.

S3cmd is geschreven in Python, dus het wordt zo ongeveer in alle besturingssystemen ondersteund, zolang Python is geïnstalleerd.

Installatie

S3cmd is te vinden in de meeste Linux-repositories. In Debian / Ubuntu of een andere apt-gebaseerde distro kun je S3cmd installeren met het commando:

 sudo apt-get install s3cmd 

Voor Fedora, Centos of andere yum-gebaseerde distro's:

 sudo yum installeer s3cmd 

U kunt ook de broncode downloaden, het pakket uitpakken en het installatieprogramma uitvoeren:

 sudo python setup.py installeren 

Ermee beginnen

Voordat je begint, moet je de toegangs- en geheime sleutels van je Amazon S3 gereed hebben. U vindt de Access- en Secret-sleutels in de Amazon Management Console.

Om te beginnen, open de terminal en typ:

 s3cmd --configuratie 

Het zal u eerst vragen om uw toegangs- en geheime sleutels in te voeren.

Vervolgens moet u een coderingssleutel en het pad naar het GPG-programma invoeren.

Nadat de coderingssleutel de prompt voor het gebruik van HTTPS-protocol is. De standaardoptie is "Nee", maar u kunt "Ja" instellen voor een veiligere verbinding met Amazon S3. Houd er rekening mee dat het gebruik van het HTTPS-protocol de overdrachtssnelheid vertraagt ​​en niet kan worden gebruikt als u een proxy gebruikt.

Nadat u de instellingen hebt geconfigureerd en getest, kunt u doorgaan met het gebruik van S3cmd. Als u de instellingen wilt wijzigen, kunt u het .s3cfg- bestand in uw basismap bewerken of de opdracht s3cmd --configure opnieuw uitvoeren.

Gebruik

Ten eerste kun je de ls opdracht gebruiken om de buckets in je S3-account te bekijken.

 s3cmd ls 

Gebruik de opdracht mb om een ​​bucket te maken:

 s3cmd mb s3: // test-s3cmd-bucket 

Merk op dat u de bucketnaam moet voorafgaan met "s3: //"

Als u de inhoud in een bucket wilt weergeven, gebruikt u de opdracht ls samen met de bucketnaam. Bijvoorbeeld:

 s3cmd ls s3: // test-s3cmd-bucket 

Bestand uploaden naar bucket

De gemakkelijkste manier om een ​​bestand via S3cmd te uploaden is met de opdracht put . Bijvoorbeeld:

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

Bovendien kunt u de parameter --encrypt gebruiken om het bestand te coderen voordat u het upload naar S3.

 s3cmd zet --encrypt text.txt s3: // test-s3cmd-bucket 

De standaardmachtiging voor de opdracht put is privé, wat betekent dat het bestand alleen door u kan worden bekeken. Als u wilt dat het bestand voor iedereen toegankelijk is, kunt u de parameter --acl-public

 s3cmd zet --acl-public text.txt s3: // test-s3cmd-bucket 

Gebruik voor meer granulaire controle de --acl-grant=PERMISSION:EMAIL or USER_CANONICAL_ID . Bijvoorbeeld:

 s3cmd put --acl-grant = lees: [email protected] text.txt s3: // test-s3cmd-bucket 

De "PERMISSION" kan "lezen", "schrijven", "read_acp", "write_acp", "full_control, " "alles" zijn.

Ophalen van bestanden uit de bucket

Gebruik de opdracht get om een ​​bestand op te halen.

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

Als u alle bestanden in de bucket wilt downloaden, voegt u eenvoudig de parameter --recursive .

 s3cmd krijg - recursieve s3: // test-s3cmd-bucket 

Bestanden verwijderen uit bucket

De delete-opdracht voor s3cmd is simpelweg del . Bijvoorbeeld:

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

U kunt ook de parameter --recursive om alle bestanden in de bucket te verwijderen.

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

Raadpleeg hier voor meer S3cmd-opdrachten de gebruikshandleiding.

Geavanceerd gebruik: synchroniseer een map naar S3

Laten we zeggen dat u al uw belangrijke bestanden in een map opslaat en dat u deze wilt synchroniseren met S3. S3cmd wordt geleverd met een sync waarmee de lokale map kan worden gesynchroniseerd met de externe bestemming.

 s3cmd sync --delete-removed ~ / SecretFolder s3: // my-secret-bucket / 

Het enige wat u hoeft te doen is een cronjob maken om de synchronisatieopdracht regelmatig uit te voeren.

1. Open de crontab.

 crontab -e 

2. Voeg de volgende regel toe aan het einde van de crontab. Bewaar en verlaat de crontab.

 5 * * * * s3cmd sync --verwijderd-verwijderd ~ / SecretFolder s3: // my-secret-bucket / 

Dat is het. Uw systeem zal de geheime map nu om de 5 minuten synchroniseren met S3. U kunt de waarde wijzigen om de synchronisatieopdracht uit te voeren met uw gewenste interval. Elk bestand dat u uit de geheime map hebt verwijderd, wordt ook uit S3 verwijderd.

Conclusie

Voor degenen die in de commandoregelomgeving moeten werken, is S3cmd echt een geweldige tool om Amazon S3 via de opdrachtregel te openen en te beheren. Het is niet alleen gemakkelijk te gebruiken, maar biedt ook tal van opties voor geavanceerd gebruik en scriptingbehoeften.