ГлавнаяОперационные системыLinuxКак управлять Amazon S3 из командной строки

Как управлять Amazon S3 из командной строки

Amazon S3 — хорошее место для недорогого резервного копирования и хранения файлов в облаке. Хотя некоторые люди используют его для хранения своих личных данных, другие используют его для хранения изображений и скриптов для своих веб-сайтов и даже используйте его как CDN . На рабочем столе вы можете легко получить доступ к своей учетной записи Amazon S3 и управлять ею с помощью таких приложений, как CloudBerry , ДраконДиск и т. д., но что, если вам нужно получить к ней доступ из командной строки? ? Вот тут-то и пригодится S3cmd.

S3cmd  — бесплатный инструмент командной строки для загрузки, получения и управления данными в Amazon S3. Помимо S3, он также поддерживает других поставщиков услуг облачного хранения, использующих протокол S3, таких как Google Cloud Storage или DreamHost DreamObjects. Лучше всего использовать этот инструмент на удаленном сервере, где все делается из командной строки. Кроме того, вы также можете использовать его для создания пакетных сценариев и автоматического резервного копирования на S3.

S3cmd написан на Python, поэтому поддерживается практически во всех операционных системах, если установлен Python.

Установка

S3cmd находится в большинстве репозиториев Linux. В Debian/Ubuntu или любом другом дистрибутиве на основе apt вы можете установить S3cmd с помощью команды:

sudo apt-get install s3cmd

Для Fedora, Centos или любого другого дистрибутива на основе yum:

sudo yum install s3cmd

Альтернативно вы можете скачать исходный код, разархивировать пакет и запустить установщик:

sudo python setup.py install

Начало работы

Прежде чем приступить к работе, вам необходимо подготовить ключи доступа и секретные ключи Amazon S3. Вы можете найти ключи доступа и секретные ключи в

Contents

Уст

Начало работы

onsole/" target="_blank" rel="noopener" title="Консоль управления Amazon">Консоль управления Amazon .

Чтобы начать, откройте терминал и введите:

s3cmd --configure

Сначала вам будет предложено ввести ключи доступа и секретные ключи.

s3cmd-конфигурация

Далее вам необходимо ввести ключ шифрования и путь к программе GPG.

s3cmd-настройка-шифрование

После ключа шифрования отображается запрос на использование протокола HTTPS. Вариант по умолчанию — «Нет», но вы можете установить «Да» для более безопасного подключения к Amazon S3. Обратите внимание, что использование протокола HTTPS замедлит скорость передачи и его нельзя использовать, если вы используете прокси.

s3cmd-configure-https

После того как вы настроили и протестировали параметры, вы можете приступить к использованию S3cmd. Если вам нужно изменить настройки, вы можете либо отредактировать файл .s3cfgв своем домашнем каталоге, либо снова запустить команду s3cmd --configure.

Использование

Во-первых, чтобы просмотреть сегменты в вашей учетной записи S3, вы можете использовать команду ls.

s3cmd ls

s3cmd-список-ведро

Чтобы создать сегмент, используйте команду mb:

s3cmd mb s3://test-s3cmd-bucket

Обратите внимание, что вам нужно будет добавить к имени корзины префикс «s3://»

s3cmd-создать-ведро

Чтобы просмотреть содержимое сегмента, используйте команду lsвместе с именем сегмента. Например:

s3cmd ls s3://test-s3cmd-bucket

s3cmd-list-bucket-content

Загрузка файла в корзину

Самый простой способ загрузить файл через S3cmd — с помощью команды put. Например:

s3cmd put text.txt s3://test-s3cmd-bucket

Кроме того, вы можете использовать параметр --encryptдля шифрования файла перед загрузкой на S3.

s3cmd put --encrypt text.txt s3://test-s3cmd-bucket

По умолчанию для команды putустановлено конфиденциальное разрешение, что означает, что файл можете просматривать только вы. Если вам нужно, чтобы файл был общедоступным, вы можете добавить параметр --acl-public

s3cmd put --acl-public text.txt s3://test-s3cmd-bucket

Для более детального контроля используйте параметр --acl-grant=PERMISSION:EMAIL or USER_CANONICAL_ID. Например:

s3cmd put --acl-grant=read:damien@gmail.com text.txt s3://test-s3cmd-bu

Использование

азрешение может быть «чтение», «запись», «read_acp», «write_acp», «полный_контроль», «все».

Извлечение файлов из корзины

Чтобы получить файл, используйте команду get.

s3cmd get s3://test-s3cmd-bucket/text.txt text.txt

Чтобы загрузить все файлы в корзину, просто добавьте параметр --recursive.

s3cmd get --recursive s3://test-s3cmd-bucket

Удаление файлов из корзины

Команда удаления для s3cmd — это просто del. Например:

s3cmd del s3://test-s3cmd-bucket/text.txt

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

s3cmd del --recursive s3://test-s3cmd-bucket

Дополнительные команды S3cmd: ознакомьтесь с руководством по использованию здесь .

Расширенное использование: синхронизировать папку с S3

Предположим, вы храните все важные файлы в папке и хотите, чтобы она синхро

Загрузка файла в корзину

ется с командой sync, которая может синхронизировать локальную папку с удаленным местом назначения.

s3cmd sync --delete-removed ~/SecretFolder s3://my-secret-bucket/

Все, что вам нужно сделать, это создать задание cron для регулярного запуска команды синхронизации.

1. Откройте crontab.

crontab -e

2. Добавьте следующую строку в конец crontab. Сохраните и выйдите из crontab.

5 * * * * s3cmd sync --delete-removed ~/SecretFolder s3://my-secret-bucket/

Вот и все. Ваша система теперь будет синхронизировать секретную папку с S3 каждые 5 минут. Вы можете изменить значение, чтобы запускать команду синхронизации с выбранным вами интервалом. Каждый файл, который вы удалили из секретной папки, будет удален и из S3.

Заключение

Для тех, кому необходимо работать в среде командной строки, S3cmd — действительно отличный инструмент для доступа и управления Amazon S3 из командной строки. Он не только прост в использовании, но и предлагает множество возможностей для расширенного использования и создания сценариев.

Извлечение файлов из корзины

Удаление файлов из корзины

Расширенное использование: синхронизировать папку с S3

Заключение

ПОХОЖИЕ СТАТЬИ

Популярные записи