Перейти к основному содержимому

Поддерживаемые операции 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.