Получить метаданные пользователя объекта в S3 — aws sdk v3 php

Я хочу получить пользовательские метаданные из объектов в моей корзине 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?

Любая помощь будет принята с благодарностью :)


person Anthony S    schedule 24.08.2015    source источник


Ответы (1)


У меня была такая же проблема с 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
                )
        )
)
person Andrew Bucklin    schedule 02.09.2015
comment
Огромное спасибо! Это работает отлично. Спасибо за подробный пример - person Anthony S; 10.09.2015