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
Сначала вам будет предложено ввести ключи доступа и секретные ключи.
Далее вам необходимо ввести ключ шифрования и путь к программе GPG.
После ключа шифрования отображается запрос на использование протокола HTTPS. Вариант по умолчанию — «Нет», но вы можете установить «Да» для более безопасного подключения к Amazon S3. Обратите внимание, что использование протокола HTTPS замедлит скорость передачи и его нельзя использовать, если вы используете прокси.
После того как вы настроили и протестировали параметры, вы можете приступить к использованию S3cmd. Если вам нужно изменить настройки, вы можете либо отредактировать файл .s3cfgв своем домашнем каталоге, либо снова запустить команду s3cmd --configure
.
Использование
Во-первых, чтобы просмотреть сегменты в вашей учетной записи S3, вы можете использовать команду ls
.
s3cmd ls
Чтобы создать сегмент, используйте команду mb
:
s3cmd mb s3://test-s3cmd-bucket
Обратите внимание, что вам нужно будет добавить к имени корзины префикс «s3://»
Чтобы просмотреть содержимое сегмента, используйте команду ls
вместе с именем сегмента. Например:
s3cmd ls s3://test-s3cmd-bucket
Загрузка файла в корзину
Самый простой способ загрузить файл через 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
Заключение
s3cmd --configure
s3cmd --configure
.ls
.s3cmd ls
mb
:s3cmd mb s3://test-s3cmd-bucket
ls
вместе с именем сегмента. Например:s3cmd ls s3://test-s3cmd-bucket
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
Заключение