Как да управлявате Amazon S3 от командния ред
Amazon S3 е добро място за архивиране и съхранение на файловете си евтино в облака. Докато някои хора я използват, за да съхраняват личните си данни, има и други, които я използват, за да съхраняват изображения и скриптове за уебсайтовете си и дори да я използват като CDN. На компютъра си можете лесно да влизате и управлявате профила си в Amazon S3 с приложения като S3Fox, CloudBerry, DragonDisk и т.н., но какво ще стане, ако имате нужда от достъп до него от командния ред? Това е мястото, където S3cmd е полезно.
S3cmd е безплатен инструмент за командния ред за качване, извличане и управление на данни в Amazon S3. Освен S3, той поддържа и други доставчици на услуги за съхранение в облака, които използват протокола S3, като Google Cloud Storage или DreamHost DreamObjects. Най-доброто използване на този инструмент е на отдалечен сървър, където всичко се извършва на командния ред. Като алтернатива, можете да го използвате и за създаване на партидни скриптове и автоматично архивиране на S3.
S3cmd е написан на Python, така че е почти поддържан във всички операционни системи, докато Python е инсталиран.
Инсталация
S3cmd се намира в повечето хранилища на Linux. В Debian / Ubuntu или всяка друга дистрибуция на базата на apt можете да инсталирате S3cmd с командата:
sudo apt-get инсталирате s3cmd
За Fedora, Centos или други дистрибуции, базирани на yum:
sudo yum инсталирате s3cmd
Друга възможност е да изтеглите изходния код, да разархивирате пакета и да изпълните инсталатора:
sudo python setup.py инсталирате
Приготвяме се да започнем
Преди да започнете, ще трябва да имате готови Amazon S3's Access и Secret keys. Можете да намерите клавишите Access и Secret в конзолата за управление на Amazon.
За да започнете, отворете терминала и въведете:
s3cmd - конфигуриране
Първо ще ви подкани да въведете клавишите си за достъп и Secret.
След това трябва да въведете ключ за кодиране и пътя към програмата GPG.
След като ключът за шифроване е подкана за използване на протокола HTTPS. Опцията по подразбиране е "Не", но можете да зададете "Да" за по-сигурна връзка с Amazon S3. Имайте предвид, че използването на протокола HTTPS ще забави скоростта на прехвърляне и не може да се използва, ако използвате прокси сървър.
След като конфигурирате и тествате настройките, можете да продължите да използвате S3cmd. Ако трябва да промените настройките, можете или да редактирате файла .s3cfg във вашата домашна директория, или да стартирате командата s3cmd --configure
отново.
употреба
Първо, за да видите кофите в профила си в S3, можете да използвате ls
.
s3cmd ls
За да създадете кофа, използвайте командата mb
:
s3cmd mb s3: // test-s3cmd-кофа
Имайте предвид, че ще трябва да въведете името на кофата с "s3: //"
За да изведете съдържанието в кофа, използвайте ls
заедно с името на кофата. Например:
s3cmd ls s3: // test-s3cmd-кофа
Качване на файл в кофа
Най-лесният начин да качите файл чрез S3cmd е с командата за put
. Например:
s3cmd сложете text.txt s3: // test-s3cmd-bucket
Освен това можете да използвате параметъра --encrypt
, за да шифровате файла, преди да го качите на S3.
s3cmd поставен - encrypt text.txt s3: // test-s3cmd-кофа
По подразбиране разрешението за командата put
е лично, което означава, че файлът може да се разглежда само от вас. Ако имате нужда от публичното достъпване на файла, можете да добавите параметъра --acl-public
s3cmd пуснат --acl-public text.txt s3: // test-s3cmd-bucket
За по-подробно управление използвайте --acl-grant=PERMISSION:EMAIL or USER_CANONICAL_ID
. Например:
s3cmd put --acl-grant = прочетено: [email protected] text.txt s3: // test-s3cmd-bucket
"РАЗРЕШЕНИЕ" може да бъде "прочетено", "пише", "read_acp", "write_acp", "full_control", "all".
Извличане на файлове от кофата
За да изтеглите файл, използвайте командата get
.
s3cmd получи s3: //test-s3cmd-bucket/text.txt text.txt
За да изтеглите всички файлове в кофата, просто добавете параметъра --recursive
.
s3cmd получи - рекурсивен s3: // test-s3cmd-кофа
Изтриване на файлове от кофата
Командата за изтриване на s3cmd е просто del
. Например:
s3cmd del s3: //test-s3cmd-bucket/text.txt
Можете също да използвате параметъра --recursive
, за да изтриете всички файлове в кофата.
s3cmd del - рекурсивен s3: // test-s3cmd-кофа
За повече S3cmd команди вижте ръководството за употреба тук.
Разширено използване: Синхронизирайте папка със S3
Да приемем, че съхранявате всичките си важни файлове в папка и искате да бъде синхронизиран със S3. S3cmd идва с команда за sync
която може да синхронизира локалната папка с отдалечената дестинация.
s3cmd синхронизиране - премахване на премахната ~ / SecretFolder s3: // my-secret-bucket /
Всичко, което трябва да направите, е да създадете cronjob, за да стартирате командата за синхронизиране редовно.
1. Отворете crontab.
crontab -e
2. Добавете следния ред в края на crontab. Запазете и излезте от crontab.
5 * * * * s3cmd синхронизиране - премахване на отстранените ~ / SecretFolder s3: // my-secret-bucket /
Това е. Сега вашата система ще синхронизира тайната папка със S3 на всеки 5 минути. Можете да промените стойността, за да изпълните командата за синхронизиране на предпочитания от вас интервал. Всеки файл, който сте премахнали от тайната папка, ще бъде премахнат и от S3.
заключение
За тези, които трябва да работят в средата на командния ред, S3cmd е наистина чудесен инструмент за достъп и управление на Amazon S3 от командния ред. Не само, че е лесен за използване, но идва с много възможности за разширена употреба и скриптове.