Подключение через AWS CLI

AWS CLI утилита, которая предоставляет доступ к Объектному хранилищу S3 через интерфейс командной строки.

Вы можете создать/удалить бакет, загрузить/скачать/удалить объекты, настроить доступ к объектам и бакетам и т.д. Для этого:

  1. Установите утилиту AWS CLI.
  2. Настройте AWS CLI.
  3. Выполните нужные команды в AWS CLI.

Установка AWS CLI

Можно установить утилиту AWS CLI на сервере c ОС Ubuntu при помощи утилиты управления пакетами snap:

  1. При необходимости закажите сервер c ОС Ubuntu и публичным IP-адресом.
  2. Подключитесь к серверу.
  3. Введите команду bash и нажмите Enter для запуска оболочки bash.
  4. Установите на сервер утилиту AWS CLI при помощи пакета snap:

    sudo snap install aws-cli --classic

Дистрибутивы и инструкцию по их установке см. в официальной документации.

Настройка AWS CLI

Чтобы настроить AWS CLI:

  1. Используйте команду:

    aws configure
  2. Команда запросит значения параметров и сохранит их в файле .aws/credentials:
  3. Откройте файл .aws/config в текстовой редакторе GNU nano, выполнив команду:

    nano .aws/config
  4. В открывшемся редакторе укажите адрес Endpoint. Для этого в свободной строке введите:

    endpoint_url = <endpoint>

    где:

    • <endpoint> — адрес Endpoint Объектного хранилища S3:
      • https://api.s3.dp.t1.cloud — для Объектного хранилища S3 AZ0;
      • https://api.s3.az1.t1.cloud — для Объектного хранилища S3 AZ1.
  5. Сохраните изменения и закройте редактор.

    Основные команды и правила использования текстового редактора GNU nano см. в официальной документации.

Синтаксис команд AWS CLI

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

aws s3 ls

Примечание

Данная команда выводит только бакеты, для которых сервисный аккаунт является владельцем. При таком запросе не учитываются правила доступа к бакету (ACL) и разрешения на действия для ролей (IAM-политики). При этом сервисный аккаунт может загружать и удалять объекты в бакетах, к которым у него есть доступ.

aws s3 ls s3://<имя бакета>/<путь к объекту>/

где:

  • <имя бакета>название бакета;
  • <путь к объекту> — путь к объекту в бакете. Например, document/images. Указывается, если нужно посмотреть содержимое папки бакета.

aws s3 mb s3://<имя бакета>

где:

  • <имя бакета> — название создаваемого бакета.

aws s3 cp <путь к файлу>/<имя файла> s3://<имя бакета>/<путь к объекту>/<объект>

где:

  • <путь к файлу>локальный путь к файлу на сервере. Например, files/photos;
  • <имя файла>название загружаемого файла с расширением. Например, photo.png;
  • <имя бакета> — название бакета, в который загружается объект;
  • <путь к объекту>путь к объекту в бакете. Например, document/images. Если объект загружается в корень бакета, то данный параметр не указывается;

  • <объект>название объекта с расширением. Например, image1.png. Если параметр <объект> не указан, то сохранится исходное название файла.

Примечание

При возникновении ошибки расчёта контрольной суммы XAmzContentSHA256Mismatch:

  1. Откройте файл .aws/config в текстовом редакторе GNU nano, выполнив команду:

    nano .aws/config

     

  2. В открывшемся редакторе добавьте строку:

    request_checksum_calculation = when_required
  3. Сохраните изменения и закройте редактор.

aws s3 cp s3://<имя бакета>/<путь к объекту>/<объект> <путь к файлу>/<имя файла>

где:

  • <имя бакета>название бакета, в котором находится объект для скачивания;
  • <путь к объекту>путь к объекту в бакете. Например, document/images. Если объект находится в корне бакета, то данный параметр не указывается;
  • <объект> — название объекта с расширением. Например, image1.png;
  • <путь к файлу> локальный путь, по которому объект сохранится на сервере. Например, files/photos;
  • <имя файла>новое название для скачиваемого объекта. Например, new_image.png. Объект не сохранится, если по пути, указанному в параметре <путь к файлу>, уже существует файл с названием скачиваемого объекта. Параметр <имя файла> не указывается, если не нужно переименовывать объект.

aws s3 rm s3://<имя бакета>/<путь к объекту>/<объект>

где:

  • <имя бакета>название бакета;
  • <путь к объекту>путь к объекту в бакете. Например, document/images. Если объект находится в корне бакета, то данный параметр не указывается;
  • <объект> — название объекта с расширением. Например, image1.png. Если параметр <объект> не указан, то удалятся все объекты по пути, указанному в параметре <путь к объекту>.

aws s3 rm s3://<имя бакета> --recursive

где:

  • <имя бакета>название бакета, в котором нужно удалить все объекты.

aws s3 rb s3://<имя бакета>

где:

  • <имя бакета> — название удаляемого бакета.

Важно

Удалить можно только бакет, в котором нет объектов. Перед удалением бакета удалите все его объекты.

Полный список команд см. в официальной документации AWS CLI.

Мы ответили на ваш вопрос?