в backup, debian

Утилита s4cmd для работы с Amazon S3

amazon-s3
Ранее я уже писал об утилите 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 — стабильнее.

Добавить комментарий