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 от командния ред. Не само, че е лесен за използване, но идва с много възможности за разширена употреба и скриптове.