Утилита s4cmd для работы с Amazon Simple Storage Service
Sep 7, 2015 14:53 · 245 words · 2 minute read
Ранее я уже писал об утилите s3cmd
, позволяющей удобно работать с Amazon Simple Storage Service (S3). В данной статье давайте разберемся с более быстрым аналогом — утилитой s4cmd
.
Для работы с хранилищем Amazon S3 утилита s4cmd
поддерживает только 8 команд (ls
, put
, get
, cp
, mv
, sync
, del
, du
), в то время как s3cmd
позволяет использовать 32(!) команды. Аналогичная ситуация и с поддерживаемыми опциями — 5 параметров в s4cmd
(--recursive
, --show-directory
, --sync-check
, --force
, --dry-run
) против 70 параметров в s3cmd
(полный список здесь).
Единственной причиной, по которой стоит использовать утилиту s4cmd
для работы с Amazon S3 является скорость — выгрузка/загрузка файлов происходит почти в два раза быстрее.
Для установки утилиты нам понадобятся python-pip
и boto
:
aptitude install python-pip
pip install boto
Для установки утилиты s4cmd
можно использовать два варианта. Первый вариант:
pip install s4cmd
Второй вариант:
cd ~ && git clone https://github.com/bloomreach/s4cmd.git
cp -r s4cmd/s4cmd.py /usr/bin/
Запускать утилиту будем как s4cmd
, а не s4cmd.py
, следовательно нужно создать симлинк:
ln -s /usr/bin/s4cmd.py /usr/bin/s4cmd
Примечание. Считаем, что уже есть конфигурационный файл ~/.s3cfg
, который мы создавали в этой статье.
Проверяем работу утилиты s4cmd
с хранилищем Amazon S3:
- выгружаем файл с локального компьютера:
s4cmd put mysql_20150831.sql s3://test_bucket/mysql_20150831.sql
- проверяем содержимое хранилища Amazon S3:
s4cmd ls s3://test_bucket/
- скачиваем файл с хранилища Amazon S3 на локальный компьютер:
s4cmd get s3://test_bucket/mysql_20150831.sql /home/mysql_20150831_from_s3.sql
Примечание. Утилита s4cmd
не поддерживает команду mb
(создание корзин), поэтому работаем с корзиной, которую создавали утилитой s3cmd
.
По результатам использования утилит могу сказать следующее — s4cmd
действительно работает быстрее, но s3cmd
— стабильнее.