【问题标题】:Retrieve object user metadata in S3 - aws sdk v3 php在 S3 中检索对象用户元数据 - aws sdk v3 php
【发布时间】:2015-11-18 10:42:12
【问题描述】:

我希望从 php sdk 中的 S3 存储桶中的对象中检索用户定义的元数据。

根据Editing Object Meta Data,用户元数据与对象一起存储并返回,并以“x-amz-meta-”开头

我已通过控制台(如“x-amz-meta-test”)在上传时定义对象上的用户元数据,并在上传后添加(通过 Web 控制台,而不是上传 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

但是,要在其他语言中实现这一点,需要一个简单的方法调用。

Get User Metadata in Android SDK

Get User Metadata in Java SDK

如何在 PHP SDK 中完成相同的任务?

任何帮助将不胜感激:)

【问题讨论】:

    标签: php amazon-web-services amazon-s3 aws-php-sdk


    【解决方案1】:

    我在使用 v3 AWS SDK for 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
                    )
            )
    )
    

    【讨论】:

    • 非常感谢!这完美地工作。感谢您提供详细的示例
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-24
    • 1970-01-01
    • 2019-11-18
    • 1970-01-01
    • 1970-01-01
    • 2021-09-26
    相关资源
    最近更新 更多