我正在从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
但是,要用其他语言实现此目的,则涉及一个简单的方法调用.
如何在PHP SDK中完成相同的任务?
任何帮助将不胜感激 :)
解决方法:
对于PHP的v3 AWS开发工具包,我遇到了同样的问题.经过一些研究和测试,我确定可以使用headObject:
$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
)
)
)
标签:amazon-web-services,amazon-s3,aws-php-sdk,php
来源: https://codeday.me/bug/20191119/2039142.html