Поддерживаемые операции S3 API
Ниже — операции, проверенные на нашей инсталляции StorageGRID. Команды приведены
для s3cmd; в других клиентах названия отличаются, но набор поддерживаемых
операций тот же.
Работают
| Действие | Команда |
|---|---|
| Создать бакет | s3cmd mb s3://BUCKET |
| Удалить бакет | s3cmd rb s3://BUCKET |
| Список объектов или бакетов | s3cmd ls [s3://BUCKET[/PREFIX]] |
| Список всех объектов во всех бакетах | s3cmd la |
| Загрузить файл | s3cmd put FILE s3://BUCKET[/PREFIX] |
| Скачать файл | s3cmd get s3://BUCKET/OBJECT LOCAL_FILE |
| Удалить файл | s3cmd del s3://BUCKET/OBJECT |
| Синхронизировать каталог | s3cmd sync LOCAL_DIR s3://BUCKET[/PREFIX] |
| Занятое место по бакетам | s3cmd du [s3://BUCKET[/PREFIX]] |
| Информация о бакете или объекте | s3cmd info s3://BUCKET[/OBJECT] |
| Копировать объект | s3cmd cp s3://B1/O1 s3://B2[/O2] |
| Переместить объект | s3cmd mv s3://B1/O1 s3://B2[/O2] |
| Задать политику бакета | s3cmd setpolicy FILE s3://BUCKET |
| Удалить политику бакета | s3cmd delpolicy s3://BUCKET |
| Список multipart-загрузок | s3cmd multipart s3://BUCKET [Id] |
| Прервать multipart-загрузку | s3cmd abortmp s3://BUCKET/OBJECT Id |
| Части multipart-загрузки | s3cmd listmp s3://BUCKET/OBJECT Id |
| Подписать строку секретным ключом | s3cmd sign STRING-TO-SIGN |
| Предподписанная ссылка с истечением | s3cmd signurl s3://BUCKET/OBJECT <expiry> |
| Правило истечения для бакета | s3cmd expire s3://BUCKET |
| Загрузить политику жизненного цикла | s3cmd setlifecycle FILE s3://BUCKET |
| Получить политику жизненного цикла | s3cmd getlifecycle s3://BUCKET |
| Удалить политику жизненного цикла | s3cmd dellifecycle s3://BUCKET |
Не поддерживаются
Возвращают 501 XNotImplemented:
| Действие | Команда |
|---|---|
| Изменить ACL бакета или объекта | s3cmd setacl |
| Включить журналирование доступа к бакету | s3cmd accesslog |
| Создать статический сайт из бакета | s3cmd ws-create |
| Удалить статический сайт | s3cmd ws-delete |
| Информация о статическом сайте | s3cmd ws-info |
Для разграничения доступа вместо ACL используйте политики бакета
(s3cmd setpolicy) и IAM-политики. Подробнее — на странице
шифрование и доступ.
Работают частично
| Действие | Поведение |
|---|---|
s3cmd modify — изменение метаданных | Команда завершается успешно, но изменения не применяются: соответствующие заголовки не поддерживаются. Теги меняются через клиенты с поддержкой tagging |
s3cmd setcors — настройка CORS | Не отрабатывает без публичной политики бакета |
s3cmd setlifecycle — политика жизненного цикла | Принимаются правила Expiration и NoncurrentVersionExpiration. Правило AbortIncompleteMultipartUpload отклоняется с 400 MalformedXML — см. версионирование и жизненный цикл |
Неприменимо
Эти операции относятся к сервисам AWS и в объектном хранилище не используются:
s3cmd restore— восстановление из Glacier;- команды CloudFront:
cflist,cfinfo,cfcreate,cfdelete,cfmodify,cfinvalinfo.
Уведомления о событиях
Команды s3cmd setnotification, getnotification и delnotification в нашей
инсталляции не отрабатывают — это ограничение клиента, а не платформы.
Сами уведомления поддерживаются и подключаются по запросу: адрес назначения
создаётся в Tenant Manager, конфигурация вешается на бакет через S3 API
операцией put-bucket-notification-configuration. См.
дополнительную функциональность.
Документация вендора
Полный справочник поддерживаемых запросов S3 API публикует NetApp: Supported S3 API requests.