Ссылки на дистрибутивы AWS CLI и документация доступны по данной ссылке.
- Запустите настройку конфигурации AWS: aws configure .
- Задайте следующие параметры:
- AWS Access Key ID [None] - Access Key, выданный при заведении тенанта
- AWS Secret Access Key [None] - Secret Key, выданный при заведении тенанта
- Default region name [None] - оставьте пустым.
- Default output format [None] - оставьте пустым.
При работе с AWS CLI необходимо:
- либо каждый раз указывать endpoint-url, что делает команды наглядными и позволяет проще переключаться между сервисами и минимизирует вероятность отправки команд "не в то окно"
- либо сохранить в конфигурации endpoint-url, что удобно для сокращения длины команд (далее мы будем приводить примеры команд с учётом для этого варианта использования)
Далее в статье ключ_объекта - имя объекта и путь к нему, включающий все каталоги.
Сохранение endpoint-url в конфигурации
aws configure set endpoint_url https://r1g1z1.p20s3.linx.ru/
Просмотр корневого каталога
aws s3 ls
Работа с бакетами и каталогами
Создание бакета
aws s3api create-bucket --bucket имя_бакета
Важно: имя бакета должно соответствовать правилам наименования.
Создание каталога в существующем бакете
aws s3api put-object --bucket имя_бакета --key имя_каталога
Удаление каталога со всеми вложенными объектами и подкаталогами
aws s3 rm s3://имя_бакета/имя_каталога --recursive
Просмотр списка и размера объектов в бакете или каталоге
aws s3 ls s3://имя_бакета/имя_каталога --recursive --human-readable --summarize
Важно: при большом количестве объектов в бакете или каталоге, выполнение команды может занимать продолжительное время.
Работа с объектами
Скачивание объекта
aws s3api get-object --bucket имя_бакета --key ключ_объекта присваиваемое_имя
aws s3 cp s3://имя_бакета/ключ_объекта присваиваемое_имяgreater-than
Загрузка объекта
aws s3api put-object --bucket имя_бакета --key ключ_объекта --body путь_к_файлу
aws s3 cp путь_к_файлу s3://имя_бакета
, где путь_к_файлу записывается в формате C:\#Temp\object
Удаление объекта
aws s3 rm s3://имя_бакета/ключ_объекта
Multipart
Удаление частично загруженного multipart объекта
aws s3api abort-multipart-upload --bucket имя_бакета --key ключ_объекта --upload-id идентификатор_загрузки
Чтобы узнать upload-id, найдите его в списке загрузок, который можно вызвать с помощью команды, приведённой ниже.
Отобразить сиписок multipart загрузок объектов
aws s3api list-multipart-uploads --bucket имя_бакета
Управление доступом через ACL
Прочитать ACL объекта
aws s3api get-object-acl --bucket имя_бакета --key ключ_объекта
Прочитать ACL бакета
aws s3api get-bucket-acl --bucket имя_бакета
Назначить ACL на бакет
aws s3api put-bucket-acl --bucket имя_бакета --acl уровень_доступа
, где уровень_доступа принимает одно из следующих значений:
- private - только владелец бакета получает FULL_CONTROL (запись, чтение, управление ACL), остальные пользователи никакого доступа не имеют;
- public-read - владелец бакета получает FULL_CONTROL, а группа AllUsers (другие пользователи tenant'а) получает READ (прочитать, скачать объект, прочитать список объектов в бакете)
- public-read-write - владелец бакета получает FULL_CONTROL, а группа AllUsers получает READ и WRITE (запись, чтение, удаление объекты);
- authenticated-read - владелец бакета получает FULL_CONTROL, а группа AuthenticatedUsers получает READ, анонимно объекты недоступны
Управление жизненным циклом объектов
Загрузка конфигурации в хранилище
aws s3api put-bucket lifecycle --bucket имя_бакета --lifecycle-configuration file://имя_файла_конфигурации.json
Запрос конфигурации
aws s3api get-bucket lifecycle –bucket имя_бакета
Удаление конфигурации
aws s3api delete-bucket lifecycle –bucket имя_бакета
Управление CORS-конфигурацией
Загрузка конфигурации в хранилище
aws s3api put-bucket-cors --bucket имя_бакета --cors-configuration file://имя_файла_конфигурации.xml
Запрос конфигурации
aws s3api get-bucket-cors --bucket имя_бакета
Удаление конфигурации
aws s3api delete-bucket-cors --bucket имя_бакета
Работа с Object Lock (WORM)
Создание нового бакета с включённой поддержкой Object Lock
aws s3api create-bucket --bucket имя_бакета --object-lock-enabled-for-bucket
Важно: команда активирует только возможность использования функции Object Lock на объектах без немедленного применения retention правил.
Проверка конфигурации Object lock на бакете
aws s3api get-object-lock-configuration --bucket имя_бакета
Применение retention правила на объект
aws s3api put-object-retention --bucket имя_бакета --key ключ_объекта --retention Mode=COMPLIANCE,RetainUntilDate=дата_завершения_блокировки
Применение retention правила на весь бакет
aws s3api put-object-lock-configuration --bucket имя_бакета --object-lock-configuration '{ "ObjectLockEnabled": "Enabled", "Rule": { "DefaultRetention": { "Mode": "COMPLIANCE", "Days": количество_дней }}}'
С полным списком команд вы можете ознакомится в документации вендора на официальном сайте (https://aws.amazon.com/ru/cli/), или введя в CLI команду
aws s3 help
Бесплатно проконсультируем по вашим вопросам