Работа с AWS S3 через командную строку в Unix/Linux

Работа с AWS S3 через командную строку в Unix/Linux

AWS CLI  — это консольная утилита которая позволяет работать с AWS S3 через командную строку. Я хотел бы сделать заметку о том как работать AWS S3 в консоле.

Работа с AWS S3 через командную строку в Unix/Linux

Устанавливаем AWS CLI:

Установка AWS CLI в Unix/Linux

Открываем конфиг:

Прописываем ключи. Например:

Где:

  • Your_acc_name — Имя для аккаунта. Потом можно его использовать.
  • aws_access_key_id — Ключик.
  • aws_secret_access_key — Еще один ключик.

Создание AWS S3 bucket-ов через командную строку в Unix/Linux

Работа с бакетом, т.е с S3 начнется непосредственно, с создания самого бакета.

Чтобы создать, используйте:

Иногда, нужно указывать регион в котором будет создаваться бакет:

Так же, можно через s3api, например:

Ну, создание вроде-бы понятно как создавать уже. Идем дальше.

Просмотр AWS S3 bucket-ов через командную строку в Unix/Linux

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

ИЛИ, просмотреть какие бакеты имеются:

Или, можно вывести список бакетов по конкретному профелю:

Так же, можно просмотреть данные рекурсивно для конкретной корзины:

ИЛИ, вывести сколько занимают данные:

Ничего сложного!

Копирование, удаление, перемещение данных AWS S3 bucket-ов через командную строку в Unix/Linux

В следующем примере объект копируется в bucket (Test_bucket). Ему назначено чтение для всех пользователей и полный доступ (чтение и запись) для учетной записи My_user@linux-notes.org:

Чтобы указать класс хранения(REDUCED_REDUNDANCY или STANDARD_IA) для объектов которые вы загружаете в S3, используйте опцию —storage-class:

Например, давайте скопируем некоторый файл со своего рабочего сервера в бакет:

Еще пример,  — например нужно скопировать все *.jpg файлы в s3://Test_bucket/some_path_in_backet  бакете в ./MyDirectory:

Если пунктом назначения указан корень bucket-а, то будут скопированы только файлы из указанного каталога:

Если указать каталог, то будет скопировано всё дерево файлов/каталогов:

Можно копировать данные между S3 бакетами:

Чтобы удалить файл в бакете, используйте:

Чтобы удалить весь контент в бакете (рекурсивно), используйте:

Вроде бы понятно все.

Синхронизация AWS S3 bucket-ов через командную строку в Unix/Linux

В следующем примере выполняется синхронизация текущего каталога с бакетом:

Normally, sync only copies missing or outdated files or objects between the source and target. However, you may supply the —delete option to remove files or objects from the target not present in the source.

Если вы удалили в текущем каталоге файл и хотите чтобы он удалился ( засинкался) в бакете, используйте «—delete» опцию:

Действие наоборот:

Используем синхронизацию определенного класса:

Команда sync также принимает параметр «—acl», с помощью которого вы можете установить права доступа для файлов, скопированных в S3. Параметр принимает значения private, public-read и public-read-write:

Как-то так.

Удаление AWS S3 bucket-ов через командную строку в Unix/Linux

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

Так же можно использовать принудительное удаление бакета (если он не пустой). Для этого служит «—force» опция:

Вот и все, статья «Работа с AWS S3 через командную строку в Unix/Linux» завершена.

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *