Amazon S3 beheren vanuit de opdrachtregel
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.