Настройка s3cmd 2.x для управления хранилищами

s3cmd – это кроссплатформенный инструмент командной строки для управления хранилищами объектов S3 и S3-совместимыми хранилищами.

Примечание: Для работы с s3cmd нужно зарегистрироваться в AWS (Amazon Web Services) и получить AWS Access Key и AWS Secret Key, которые понадобятся в дальнейшем.

Данный мануал поможет вам установить s3cmd и настроить утилиту для управления хранилищем.

Требования

  • Рабочая установка s3cmd 2.0.0+. В системных репозиториях может быть устаревшая версия. Потому рекомендуем установить пакет с этой страницы.
  • Пара ключей доступа.

1: Проверка версии

Сначала нужно убедиться, что вы установили правильную версию s3cmd:

s3cmd --version
s3cmd version 2.0.0+

2: Выбор конфигурационного файла

По умолчанию s3cmd хранит конфигурации в файле .s3cfg в домашнем каталоге пользователя, который запускает команды конфигурации. Это простой текстовый файл, состоящий из пар «ключ/значение», который можно редактировать сразу после его создания. Вы можете установить провайдера в файле по умолчанию или создать дополнительный конфигурационный файл для вашего провайдера.

Настройка провайдера в файле по умолчанию

Если у вас есть основной провайдер, с помощью которого вы подключаетесь к s3cmd, настройте его в файле ~/.s3cfg.

s3cmd --configure

Благодаря этому вам не придется постоянно указывать в командах конфигурационный файл.

Создание дополнительного конфигурационного файла

Если вы используете несколько сервисов для подключения к s3cmd, можно создать специальный файл для вашего провайдера. Для этого добавьте флаг –с и укажите имя файла. Конфигурационный фай будет создан в каталоге, в котором вы запустили эту команду; чтобы файл был создан в другом месте, укажите путь к этому каталогу.

К примеру, чтобы создать конфигурационный файл s3 в домашнем каталоге, нужно ввести:

s3cmd --configure -c ~/s3

Важно! Чтобы использовать этот конфигурационный файл, он должен быть явно указан в конце каждой команды. Для этого нужно добавить -c ~/s3.

3: Настройка s3cmd

Независимо от того, какой конфигурационный файл вы используете, при запуске команды конфигурации будет запущен интерактивный многоэтапный скрипт. В этом разделе мы рассмотрим каждый из этапов процесса настройки.

Добавление ключей доступа

Сначала скрипт запросит ключ доступа Access Key и Secret Key.

Примечание: Получить AWS Access Key и AWS Secret Key можно по этой ссылке.

Введите ключи и укажите все запрашиваемые данные.

Enter new values or accept defaults in brackets with Enter.
Refer to user manual for detailed description of all options.
Access key and Secret key are your identifiers for Amazon S3. Leave them empty for using the env variables.
Access Key []: EXAMPLE_ ACCESS_KEY
Secret Key []:EXAMPLE_ SECRET_KEY
Default Region [US]:

Примечание: При желании можно использовать переменные AWS_ACCESS_KEY_ID и AWS_SECRET_ACCESS_KEY для хранения ключей.

Настройка конечной точки

Теперь нужно установить конечную точку доступа (например, s3.example.com).

Use "s3.amazonaws.com" for S3 Endpoint and not modify it to the target Amazon S3.
S3 Endpoint [s3.amazonaws.com]: s3.example.com

Если провайдер поддерживает bucket на основе DNS, в следующем запросе следует указать значение bucket в таком формате:

Use "%(bucket)s.s3.amazonaws.com" to the target Amazon S3. "%(bucket)s" and "%(location)s" vars c
an be used if the target S3 system supports dns based buckets.
DNS-style bucket+hostname:port template for accessing a bucket []: %(bucket)s.s3.example.com

Настройка пароля шифрования (опционально)

Затем скрипт предложит предоставить пароль для шифрования. В отличие от HTTPS, который защищает файл только во время транспортировки, шифрование GPG не позволяет другим пользователям читать файлы и при передаче, и в хранилище. При установке пароля s3cmd не будет автоматически шифровать все передаваемые объекты. Чтобы включить шифрование, нужно добавить флаг -e в команду put при копировании объекта в хранилище.

Введите пароль, чтобы в случае необходимости иметь возможность зашифровать объект.

Encryption password is used to protect your files from reading
by unauthorized persons while in transfer to S3
Encryption password: secure_password
Path to GPG program [/usr/bin/gpg]:

Подключение по HTTPS

Далее скрипт предложит настроить подключение HTTPS, которое защищает данные от прочтения во время передачи. Чтобы принять значение по умолчанию (YES), нажмите Enter.

When using secure HTTPS protocol all communication with Amazon S3
servers is protected from 3rd party eavesdropping. This method is
slower than plain HTTP, and can only be proxied with Python 2.7 or newer
Use HTTPS protocol [Yes]:

Настройка прокси-сервера (опционально)

Если вашей сети необходим HTTP прокси-сервер, укажите его IP-адрес или домен без протокола (например, 203.0.113.1 или proxy.example.com). Если вы не используете прокси-сервер, просто нажмите Enter, чтобы продолжить.

On some networks all internet access must go through a HTTP proxy.
Try setting it here if you can't connect to S3 directly
HTTP Proxy server name:

Подтверждение параметров

После этого скрипт выведет все установленные вами параметры, а также предоставит возможность их протестировать:

New settings:
Access Key []: EXAMPLE_ ACCESS_KEY
Secret Key []:EXAMPLE_ SECRET_KEY
Default Region: US
S3 Endpoint: s3.example.com
DNS-style bucket+hostname:port template for accessing a bucket: %(bucket)s.s3.example.com
Encryption password: secure_password
Path to GPG program: /usr/bin/gpg
Use HTTPS protocol: True
HTTP Proxy server name:
HTTP Proxy server port: 0
Test access with supplied credentials? [Y/n] Y

Сохранение параметров

После тестирования можно нажать Y, чтобы сохранить параметры.

Please wait, attempting to list all buckets...
Success. Your access key and secret key worked fine :-)
Now verifying that encryption works...
Success. Encryption and decryption worked fine :-)
Save settings? [y/N]

Если тест прошел неудачно или вы нажали N, у вас будет возможность повторить настройку. После сохранения конфигурации вы получите подтверждение:

Configuration saved to '/home/user/s3'

Читайте также:

Tags: