Я ищу, чтобы получить пользовательские метаданные из объектов в моем контейнере S3, из php SDK.
Согласно Редактирование метаданных объекта, Пользовательские метаданные хранятся вместе с объектом и возвращаются вместе с ним, и начинаются с «x-amz-meta-«
Я определил метаданные пользователя для объектов через консоль, например «x-amz-meta-test», как во время загрузки, так и добавляя их после загрузки (через веб-консоль, а не через API загрузки).
Метаданные теста никогда не возвращаются. Я всегда получаю одни и те же системные метаданные. То есть я получаю только следующие ключи в @metadata:
скоросшиватель
statuscode
effectiveUri
headers
x-amz-id-2
x-amz-request-id
date
x-amz-bucket-region
content-type
transfer-encoding
server
Объекты
Key
LastModified
date
timezone_type
timezone
ETag
Size
StorageClass
Однако для достижения этого в других языках требуется простой вызов метода.
Получить метаданные пользователя в Android SDK
Получить метаданные пользователя в Java SDK
Как мне выполнить ту же задачу в PHP SDK?
Любая помощь будет принята с благодарностью 🙂
У меня была такая же проблема с v3 AWS SDK для PHP. После некоторых исследований и испытаний я решил, что могу использовать headObject
:
<?php
$headers = $s3->headObject(array(
"Bucket" => $bucket,
"Key" => $key
));
print_r($headers->toArray());
?>
Пример вывода с системными метаданными и другой идентифицирующей информацией УДАЛЕНО:
Array
(
/* REMOVED */
[Metadata] => Array
(
[orderdate] => Mon, 31 Aug 2015 19:03:52 +0000
[color] => green
[fruit] => apple
[price] => 99.95
)
/* REMOVED */
[@metadata] => Array
(
[statusCode] => 200
[effectiveUri] => https://s3.amazonaws.com/REMOVED/REMOVED
[headers] => Array
(
[x-amz-id-2] => REMOVED
[x-amz-request-id] => REMOVED
[date] => Wed, 02 Sep 2015 04:43:02 GMT
[x-amz-meta-orderdate] => Mon, 31 Aug 2015 19:03:52 +0000
[x-amz-meta-color] => green
[x-amz-meta-fruit] => apple
[x-amz-meta-price] => 99.95
[last-modified] => Wed, 02 Sep 2015 04:11:13 GMT
[etag] => "REMOVED"[x-amz-storage-class] => REDUCED_REDUNDANCY
[accept-ranges] => bytes
[content-type] => application/octet-stream
[content-length] => 80771
[server] => AmazonS3
)
)
)
Других решений пока нет …