Истории успеха наших клиентов — лучшие проекты
Вход/ Регистрация
На главную
25eb9e0a-a5a8-472a-ace7-940b8bd2adf0
Облачные сервисы

AWS CLI

AWS CLI — это интерфейс командной строки для работы с сервисами Amazon. В интерфейсе доступен набор команд для управления файлами в облачном хранилище.

Установка

На текущий момент для полноценной работы с кластером необходимо использовать AWS CLI первой версии. Для установки AWS CLI воспользуйтесь pipx:

    

После установки проверьте версию AWS CLI с помощью команды:

    

Настройка

Для настройки AWS для работы с нашим объектным хранилищем S3 используйте команду:

    

Появится интерактивная строка с запросом реквизитов для подключения. Заполните их следующим образом, подставив необходимые значения из настроек бакета в вашей панели управления:

    

Будет создана скрытая директория .aws с файлами config и credentials, которые содержат настройки AWS и ключи для авторизации соответственно.

Работа с файлами

Рассмотрим, как выполнять основные операции с объектами в бакете.

Получение списка файлов в бакете

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

    

Загрузка локального файла в бакет

Для загрузки файлов используется cp. В примере ниже загружается файл text.txt:

    

Удаление файла в бакете

Для удаления файла используйте команду rm. В примере ниже удаляем файл text.txt:

    

Синхронизация файлов

Для синхронизации файлов между локальной директорией (в примере это текущая директория — .) и бакетом используется sync:

    

Подробную информацию по этим и другим командам можно найти в документации AWS.

Составная загрузка

Для выполнения multipart-загрузки с помощью AWS CLI необходимо использовать команду aws s3api. Этот процесс предполагает создание и завершение multipart-загрузки в несколько шагов.

Предварительная подготовка

Перед выполнением multipart-загрузки загружаемый файл необходимо разбить на части. Это можно сделать при помощи утилиты split:

    
  • <размер_части> — размер каждой части. Например, для 5 МБ укажите 5M.
  • <путь_к_файлу> — путь к исходному файлу.
  • <префикс_имени_части> — префикс для имен частей. Например, если указать part, части будут называться partaa, partab и так далее.

Шаги выполнения multipart-загрузки

Инициализация загрузки

Сначала инициализируйте multipart загрузку, чтобы получить UploadId, необходимый для последующих операций:

    

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

Загрузка частей

Используйте команду upload-part, чтобы загрузить части файла. Для этого нужно указать UploadId, PartNumber, а также файл или часть файла для загрузки. Пример загрузки первой части:

    

Повторите эту команду для каждой части файла, увеличивая номер части (--part-number) и изменяя --body для каждой последующей загрузки.

Завершение загрузки

После загрузки всех частей выполните команду complete-multipart-upload, передав UploadId и информацию о загруженных частях. Сначала сформируйте JSON-файл с частями загрузки, указывая ETag и номер части:

    

Затем завершите загрузку:

    

Отмена загрузки

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

    

Список частей составной загрузки

Чтобы получить список частей во время загрузки, можно использовать команду list-parts:

    

Подписанные URL (Presigned URL)

Подписанный URL (Presigned URL) позволяет создать временную ссылку для доступа к приватному объекту в S3. Такая ссылка позволяет получить доступ к объекту без авторизации, однако, в отличие от изменения прав доступа (ACL) объекта, presigned URL всегда имеет ограниченный срок действия (максимум — 7 дней).

Генерация presigned URL 

Для генерации временной ссылки на объект в S3 используйте команду:

    

Дополнительно можно указать срок действия ссылки с помощью флага --expires-in, который задает время в секундах (по умолчанию 3600 секунд):

    

Принцип работы Presigned URL

При создании presigned URL используется стандартный механизм авторизации AWS. Разница заключается в том, что значения, которые обычно передаются в заголовках для авторизации, в presigned URL добавляются как параметры URL. Это позволяет сторонним пользователям открыть ссылку в браузере или другом клиенте без дополнительных настроек. Например, ссылка может выглядеть так:

    
Была ли статья полезна?
Ваша оценка очень важна