我正在使用amazon s3 v3 php sdk,我正在尝试获取所有对象的密钥,因为我正在使用
s3->listObjects([ 'Bucket' => $somebucketName]);
这个功能工作正常,我得到$somebucketName
桶下的所有对象及其下面的形式
Aws\Result Object
(
[data:Aws\Result:private] => Array
(
[IsTruncated] =>
[Marker] =>
[Contents] => Array
(
[0] => Array
(
[Key] => 1.PNG
[LastModified] => Aws\Api\DateTimeResult Object
(
[date] => 2015-07-14 07:22:25.000000
[timezone_type] => 2
[timezone] => Z
)
[ETag] => "23f423234v23v42424d23"
[Size] => 19980
[StorageClass] => STANDARD
[Owner] => Array
(
[DisplayName] => sfsfssfsdf
[ID] => 242f2342242342252g42f42vt34
)
)
[1] => Array
(
[Key] => 58.jpg
[LastModified] => Aws\Api\DateTimeResult Object
(
[date] => 2015-07-14 07:20:26.000000
[timezone_type] => 2
[timezone] => Z
)
[ETag] => "vrtet4v4t54tvt4gvtgv45"
[Size] => 1226694
[StorageClass] => STANDARD
[Owner] => Array
(
[DisplayName] => sfsfssfsdf
[ID] => 34t3t3t3y43y4yg5yy4vg6u676
)
)
[2] => Array
(
[Key] => HDFHDFHDFHDFHFHFH
[LastModified] => Aws\Api\DateTimeResult Object
(
[date] => 2015-07-30 12:07:42.000000
[timezone_type] => 2
[timezone] => Z
)
[ETag] => "3453345343rcf3f3r3r3f"
)
[Name] => SFSSD
[Prefix] =>
[MaxKeys] => 1000
[@metadata] => Array
(
[statusCode] => 200
[effectiveUri] => https://s3-us-west-2.amazonaws.com/SFSSD
[headers] => Array
(
[x-amz-id-2] => sdfsfs234sfs
[x-amz-request-id] => HSJFSD899
[date] => Mon, 03 Aug 2015 06:46:48 GMT
[x-amz-bucket-region] => us-west-2
[content-type] => application/xml
[transfer-encoding] => chunked
[server] => AmazonS3
)
)
)
)
现在我的问题是如何从上面的对象中获取如下所示的键数组
array("1.png","58.jpg","HDDHDFHDHDGH);
答案 0 :(得分:4)
Aws\Result
实施ArrayAccess
。您可以像这样访问内容:
$result = $s3->listObjects(['Bucket' => $somebucketName])
$contents = $result['Contents'];
答案 1 :(得分:1)
来自comment:Please note that v1 of the SDK is deprecated
。如果您仍在使用它,则可以使用以下代码段:
$ObjectsListResponse = s3->list_objects([ 'Bucket' => $somebucketName]);
$Objects = $ObjectsListResponse->body->Contents;
foreach ($Objects as $Object) {
$keyArray[] = $Object->Key;
}