Я внедряю файловый менеджер поверх S3, и в настоящее время я пытаюсь внедрить бесшовное архивирование ледников с помощью LifeCycles. Сторона S3 с LifeCycles довольно прямолинейна. Однако я не могу найти метод, который вернет фактический класс хранения ключа. Очевидно, что он доступен, так как панель управления S3 показывает его.
В документации по классам хранения упоминается, что этот объект метаданных должен присутствовать (S3 с использованием метаданных):
x-amz-storage-class Класс хранилища, используемый для хранения объекта.
В документации headObject упоминается, что он должен возвращать метаданные, но когда я его запускаю, блок метаданных не возвращается.
Delete-Marker: "",
Accept-Ranges: "bytes",
Expiration: "",
Restore: "",
Last-Modified: "Mon, 08 Sep 2014 20:27:39 GMT",
Content-Length: "3976807",
ETag: "0359f81b950a395d3f4ee0bf****",
Missing-Meta: "",
Version-Id: "Mb96ZF0dm506eXP***",
Cache-Control: "",
Content-Disposition: "",
Content-Encoding: "",
Content-Language: "",
Content-Type: "video/x-ms-wmv",
Expires: "",
Website-Redirect-Location: "",
Server-Side-Encryption: "",
SSECustomerAlgorithm: "",
SSECustomerKeyMD5: "",
Request-Id: "43AD99D48F****E"
Между тем в документации утверждается, что метаданные должны быть одним из возвращаемых полей:
Metadata => (associative-array<string>)
Associative array of <string> keys mapping to (string) values. Each array key should be changed to an appropriate <string>.
A map of metadata to store with the object in S3.
<string> => (string)
The metadata value.
К вашему сведению, я использую эту документацию AWS SDK для PHP
Любые советы приветствуются, поскольку в настоящее время единственное решение, которое я нашел, - это либо запустить getObject (что невозможно, поскольку он загрузит весь объект), либо запустить restoreObject при каждом вызове и проверить его код исключения. Но это означает, что невозможно проверить состояние ключа без его восстановления (если он заархивирован)
Спасибо.