S3cmd — интерфейс командной строки для работы с сервисами, поддерживающими HTTP API Amazon S3.
УтилитуS3cmdможно установить на сервер с ОС Ubuntu, CentOS, macOS, Windows и т.д. Полный список ОС, дистрибутивы и инструкции по их установке см. в официальной документации S3cmd.
Вы можетесоздать/удалить бакет, загрузить/скачать/удалить объекты, настроить доступ к объектам и бакетам и т.д. Для этого:
При необходимости вы можете изменить значения параметров в файле .s3cfg с помощью текстового редактора GNU nano:
nano .s3cfg
Основные команды и правила использования текстового редактора GNU nano см. в официальной документации.
Синтаксискоманд S3cmd
Сервисный аккаунт может выполнять действия с бакетами и объектами, к которым для него выдан доступ.
В командной строке S3cmd можно выполнить следующие команды:
s3cmd ls
s3cmd ls s3://<имя бакета>/<путь к объекту>/
где:
<имя бакета>— название бакета;
<путь к объекту>— путь к объекту в бакете. Например, document/images. Указывается, если нужно посмотреть содержимое папки бакета.
s3cmd mb s3://<имя бакета>
где:
<имя бакета> — название создаваемого бакета.
s3cmd put <путь к файлу>/<имя файла> s3://<имя бакета>/<путь к объекту>/<объект>
где:
<путь к файлу> — локальный путь к файлу на сервере. Например, files/photos/;
<имя файла> — название загружаемого файла с расширением. Например, photo.png;
<имя бакета> — название бакета, в который загружается объект;
<путь к объекту> — путь к объекту в бакете. Например, document/images. Если объект загружается в корень бакета, то данный параметр не указывается. Если папки, указанные в <путь к объекту>, ещё не созданы, они создадутся автоматически при загрузке объекта в бакет;
<объект> — название объекта с расширением. Например, image1.png. Если параметр <объект> не указан, то сохранится исходное название файла.
s3cmd get s3://<имя бакета>/<путь к объекту>/<объект><путь к файлу>/<имя файла>
где:
<имя бакета> — название бакета, в котором находится объект для скачивания;
<путь к объекту> — путь к объекту в бакете. Например, document/images. Если объект находится в корне бакета, то данный параметр не указывается;
<объект> — название объекта с расширением. Например, image1.png;
<путь к файлу> — локальный путь, по которому объект сохранится на сервера. Например, /files/photos/;
<имя файла> — новое название для скачиваемого объекта. Например, new_image.png. Объект не сохранится, если по пути, указанному в параметре <путь к файлу>, уже существует файл с названием скачиваемого объекта. Параметр <имя файла> не указывается, если не нужно переименовывать объект.
s3cmd rm s3://<имя бакета>/<путь к объекту>/<объект>
где:
<имя бакета> — название бакета;
<путь к объекту> — путь к объекту в бакете. Например, document/images. Если объект находится в корне бакета, то данный параметр не указывается;
<объект> — название объекта с расширением. Например, image1.png. Если параметр <объект> не указан, то удалятся все объекты по пути, указанному в параметре <путь к объекту>.
s3cmd rm s3://<имя бакета> --recursive --force
где:
<имя бакета> — название бакета, в котором нужно удалить все объекты.