在 S3 中检索对象用户元数据 - aws sdk v3 php
Retrieve object user metadata in S3 - aws sdk v3 php
我希望通过 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
如何在 PHP SDK 中完成相同的任务?
任何帮助将不胜感激:)
我在 PHP 的 v3 AWS SDK 中遇到了同样的问题。经过一些研究和测试,我确定我可以使用 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
)
)
)
我希望通过 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
如何在 PHP SDK 中完成相同的任务?
任何帮助将不胜感激:)
我在 PHP 的 v3 AWS SDK 中遇到了同样的问题。经过一些研究和测试,我确定我可以使用 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
)
)
)