如何从亚马逊S3对象获取键数组

Ric*_*uld 5 php object amazon-s3 amazon-web-services

我正在使用Amazon s3 v3 php sdk,并且我正在尝试获取我正在使用的所有对象的密钥

s3->listObjects([ 'Bucket' => $somebucketName]);
Run Code Online (Sandbox Code Playgroud)

此功能工作正常,我将所有对象都放在$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
                        )

                )

        )

)
Run Code Online (Sandbox Code Playgroud)

现在我的问题是如何从上方对象获取下方的键数组

array("1.png","58.jpg","HDDHDFHDHDGH);
Run Code Online (Sandbox Code Playgroud)

gia*_*our 5

Aws\Result实施ArrayAccess. 您可以像这样访问内容:

$result = $s3->listObjects(['Bucket' => $somebucketName])
$contents = $result['Contents'];
Run Code Online (Sandbox Code Playgroud)


San*_*tap 1

来自评论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;
}
Run Code Online (Sandbox Code Playgroud)

PHP S3 示例

  • 请注意,SDK v1 已弃用。 (2认同)