Справочник команд для объектного хранилища RTCloud. Во всех примерах используются исходные значения: эндпоинт https://s3-msk2.rtcloud.ru, профиль rtcloud, имя бакета в виде подстановки <ИМЯ_БАКЕТА>. Значения в угловых скобках подставляйте свои.
Два набора команд. aws s3 — высокоуровневые, повторяют файловые операции (cp, ls, sync и т. д.). aws s3api — прямой доступ к S3 API для точного контроля: версии, политики, теги, блокировки, шифрование.
Про поддержку. Команды приведены по спецификации S3. Отдельные возможности (Object Lock, шифрование на стороне сервиса, presigned URL) могут поддерживаться хранилищем RTCloud не полностью — перед использованием в проде проверьте их на своём бакете.
1. Операции с бакетами
Список всех бакетов
aws s3 ls --profile rtcloud --endpoint-url https://s3-msk2.rtcloud.ru
Удалить пустой бакет
aws s3 rb s3://<ИМЯ_БАКЕТА> \
--profile rtcloud --endpoint-url https://s3-msk2.rtcloud.ru
Удалить бакет со всем содержимым
aws s3 rb s3://<ИМЯ_БАКЕТА> --force \
--profile rtcloud --endpoint-url https://s3-msk2.rtcloud.ru
Важно! --force удаляет только актуальные версии. В бакете с версионированием останутся прежние версии и маркеры удаления, и бакет не удалится — версии нужно убирать отдельно (раздел 8).
Проверить доступ к бакету
aws s3api head-bucket --bucket <ИМЯ_БАКЕТА> \
--profile rtcloud --endpoint-url https://s3-msk2.rtcloud.ru
Размер и число объектов
aws s3 ls s3://<ИМЯ_БАКЕТА> --recursive --human-readable --summarize \
--profile rtcloud --endpoint-url https://s3-msk2.rtcloud.ru
Определить площадку (регион) бакета
aws s3api get-bucket-location --bucket <ИМЯ_БАКЕТА> \
--profile rtcloud --endpoint-url https://s3-msk2.rtcloud.ru
2. Просмотр объектов
Список объектов в бакете
aws s3 ls s3://<ИМЯ_БАКЕТА> \
--profile rtcloud --endpoint-url https://s3-msk2.rtcloud.ru
Список внутри префикса, рекурсивно
aws s3 ls s3://<ИМЯ_БАКЕТА>/documents/ --recursive \
--profile rtcloud --endpoint-url https://s3-msk2.rtcloud.ru
Метаданные одного объекта (размер, дата, тип, ETag)
aws s3api head-object \
--bucket <ИМЯ_БАКЕТА> --key documents/report.pdf \
--profile rtcloud --endpoint-url https://s3-msk2.rtcloud.ru
3. Загрузка и скачивание
Загрузить файл
aws s3 cp report.pdf s3://<ИМЯ_БАКЕТА>/documents/ \
--profile rtcloud --endpoint-url https://s3-msk2.rtcloud.ru
Скачать объект
aws s3 cp s3://<ИМЯ_БАКЕТА>/documents/report.pdf ./ \
--profile rtcloud --endpoint-url https://s3-msk2.rtcloud.ru
Загрузить каталог целиком
aws s3 cp ./localdir s3://<ИМЯ_БАКЕТА>/backup/ --recursive \
--profile rtcloud --endpoint-url https://s3-msk2.rtcloud.ru
Скачать префикс целиком
aws s3 cp s3://<ИМЯ_БАКЕТА>/backup/ ./localdir --recursive \
--profile rtcloud --endpoint-url https://s3-msk2.rtcloud.ru
Загрузить с указанием типа содержимого и метаданных
aws s3 cp page.html s3://<ИМЯ_БАКЕТА>/ \
--content-type text/html \
--metadata author=team,project=docs \
--profile rtcloud --endpoint-url https://s3-msk2.rtcloud.ru
4. Синхронизация
sync переносит только новые и изменившиеся файлы, сравнивая размер и дату.
Каталог → бакет
aws s3 sync ./localdir s3://<ИМЯ_БАКЕТА>/backup/ \
--profile rtcloud --endpoint-url https://s3-msk2.rtcloud.ru
Бакет → каталог
aws s3 sync s3://<ИМЯ_БАКЕТА>/backup/ ./localdir \
--profile rtcloud --endpoint-url https://s3-msk2.rtcloud.ru
С удалением лишнего в приёмнике
--delete делает приёмник точной копией источника.
aws s3 sync ./localdir s3://<ИМЯ_БАКЕТА>/backup/ --delete \
--profile rtcloud --endpoint-url https://s3-msk2.rtcloud.ru
Предпросмотр без изменений
aws s3 sync ./localdir s3://<ИМЯ_БАКЕТА>/backup/ --delete --dryrun \
--profile rtcloud --endpoint-url https://s3-msk2.rtcloud.ru
5. Копирование и перемещение
Скопировать объект внутри хранилища
aws s3 cp s3://<ИМЯ_БАКЕТА>/a/file.txt s3://<ИМЯ_БАКЕТА>/b/file.txt \
--profile rtcloud --endpoint-url https://s3-msk2.rtcloud.ru
Переместить или переименовать
aws s3 mv s3://<ИМЯ_БАКЕТА>/old.txt s3://<ИМЯ_БАКЕТА>/new.txt \
--profile rtcloud --endpoint-url https://s3-msk2.rtcloud.ru
6. Удаление объектов
Как удаляются данные — окончательно или обратимо — зависит от версионирования. Подробный разбор смотрите в статье «Удаление объектов в S3: маркеры удаления и версии».
Удалить один объект
aws s3 rm s3://<ИМЯ_БАКЕТА>/documents/report.pdf \
--profile rtcloud --endpoint-url https://s3-msk2.rtcloud.ru
Удалить префикс целиком
aws s3 rm s3://<ИМЯ_БАКЕТА>/documents/ --recursive \
--profile rtcloud --endpoint-url https://s3-msk2.rtcloud.ru
Удалить по маске
aws s3 rm s3://<ИМЯ_БАКЕТА>/logs/ --recursive \
--exclude "*" --include "*.tmp" \
--profile rtcloud --endpoint-url https://s3-msk2.rtcloud.ru
Удалить конкретную версию (необратимо)
aws s3api delete-object \
--bucket <ИМЯ_БАКЕТА> --key report.pdf \
--version-id <ID_ВЕРСИИ> \
--profile rtcloud --endpoint-url https://s3-msk2.rtcloud.ru
7. Версионирование бакета
Включить версионирование
aws s3api put-bucket-versioning \
--bucket <ИМЯ_БАКЕТА> \
--versioning-configuration Status=Enabled \
--profile rtcloud --endpoint-url https://s3-msk2.rtcloud.ru
Приостановить версионирование
Ранее созданные версии сохраняются; новые записи перестают порождать версии. Полностью отключить версионирование нельзя.
aws s3api put-bucket-versioning \
--bucket <ИМЯ_БАКЕТА> \
--versioning-configuration Status=Suspended \
--profile rtcloud --endpoint-url https://s3-msk2.rtcloud.ru
Проверить состояние
aws s3api get-bucket-versioning \
--bucket <ИМЯ_БАКЕТА> \
--profile rtcloud --endpoint-url https://s3-msk2.rtcloud.ru
Пустой ответ означает, что версионирование никогда не включалось; иначе вернётся "Status": "Enabled" или "Suspended".
8. Работа с версиями объектов
Требуется включённое версионирование. Подробнее смотрите в статье «Как включить версионирование через AWS CLI».
Список версий и маркеров удаления
aws s3api list-object-versions \
--bucket <ИМЯ_БАКЕТА> --prefix report.pdf \
--profile rtcloud --endpoint-url https://s3-msk2.rtcloud.ru
Компактный вывод: ключ, версия, размер, признак актуальной
aws s3api list-object-versions \
--bucket <ИМЯ_БАКЕТА> \
--query "Versions[*].[Key, VersionId, Size, IsLatest]" \
--output table \
--profile rtcloud --endpoint-url https://s3-msk2.rtcloud.ru
Скачать конкретную версию
aws s3api get-object \
--bucket <ИМЯ_БАКЕТА> --key report.pdf \
--version-id <ID_ВЕРСИИ> report-old.pdf \
--profile rtcloud --endpoint-url https://s3-msk2.rtcloud.ru
Восстановить прежнюю версию (копированием поверх текущей)
aws s3api copy-object \
--bucket <ИМЯ_БАКЕТА> --key report.pdf \
--copy-source "<ИМЯ_БАКЕТА>/report.pdf?versionId=<ID_ВЕРСИИ>" \
--profile rtcloud --endpoint-url https://s3-msk2.rtcloud.ru
Оценить объём с учётом всех версий
aws s3api list-object-versions \
--bucket <ИМЯ_БАКЕТА> \
--query "sum(Versions[].Size)" \
--profile rtcloud --endpoint-url https://s3-msk2.rtcloud.ru
9. Правила жизненного цикла
Применить политику из файла
aws s3api put-bucket-lifecycle-configuration \
--bucket <ИМЯ_БАКЕТА> \
--lifecycle-configuration file://lifecycle.json \
--profile rtcloud --endpoint-url https://s3-msk2.rtcloud.ru
Просмотреть действующие правила
aws s3api get-bucket-lifecycle-configuration \
--bucket <ИМЯ_БАКЕТА> \
--profile rtcloud --endpoint-url https://s3-msk2.rtcloud.ru
Удалить все правила
aws s3api delete-bucket-lifecycle \
--bucket <ИМЯ_БАКЕТА> \
--profile rtcloud --endpoint-url https://s3-msk2.rtcloud.ru
Состав файла lifecycle.json и примеры правил — в статье «Как настроить правило жизненного цикла через AWS CLI».
10. Незавершённые мультипартовые загрузки
Список незавершённых загрузок
aws s3api list-multipart-uploads \
--bucket <ИМЯ_БАКЕТА> \
--profile rtcloud --endpoint-url https://s3-msk2.rtcloud.ru
Прервать загрузку и освободить место
aws s3api abort-multipart-upload \
--bucket <ИМЯ_БАКЕТА> --key <ИМЯ_ОБЪЕКТА> \
--upload-id <ID_ЗАГРУЗКИ> \
--profile rtcloud --endpoint-url https://s3-msk2.rtcloud.ru
Полезные флаги
| Флаг | Действие |
|---|---|
| --recursive | Обрабатывать все объекты внутри префикса |
| --dryrun | Показать результат без реальных изменений |
| --human-readable | Размеры в КБ, МБ, ГБ вместо байтов |
| --summarize | Добавить итог: число объектов и суммарный объём |
| --exclude, --include | Фильтры по маске: --exclude "*" --include "*.log" |
| --delete | Для sync: удалять в приёмнике лишнее |
| --output table | Табличный вывод для команд s3api |
| --query | Выбор нужных полей из ответа (синтаксис JMESPath) |
| --page-size | Размер страницы при обходе больших бакетов |
Смотрите также:
к Работе с S3 RTCloud