Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 用AWS SDK查询存储类_Php_Amazon Web Services_Amazon S3_Aws Sdk - Fatal编程技术网

Php 用AWS SDK查询存储类

Php 用AWS SDK查询存储类,php,amazon-web-services,amazon-s3,aws-sdk,Php,Amazon Web Services,Amazon S3,Aws Sdk,我正在S3之上实现一个文件管理器,目前我正在尝试通过生命周期实现无缝冰川归档。生命周期的S3方面非常简单。但是,我找不到一个方法可以返回密钥的实际存储类。它显然是可用的,因为S3控制面板显示了它 在存储类的文档中,他们提到这个元数据对象应该存在(): x-amz-storage-class用于存储对象的存储类 headObject文档提到它应该返回元数据,但当我运行它时,不会返回元数据块 Delete-Marker: "", Accept-Ranges: "bytes", Expiration:

我正在S3之上实现一个文件管理器,目前我正在尝试通过生命周期实现无缝冰川归档。生命周期的S3方面非常简单。但是,我找不到一个方法可以返回密钥的实际存储类。它显然是可用的,因为S3控制面板显示了它

在存储类的文档中,他们提到这个元数据对象应该存在():

x-amz-storage-class用于存储对象的存储类

headObject文档提到它应该返回元数据,但当我运行它时,不会返回元数据块

Delete-Marker: "",
Accept-Ranges: "bytes",
Expiration: "",
Restore: "",
Last-Modified: "Mon, 08 Sep 2014 20:27:39 GMT",
Content-Length: "3976807",
ETag: "0359f81b950a395d3f4ee0bf****",
Missing-Meta: "",
Version-Id: "Mb96ZF0dm506eXP***",
Cache-Control: "",
Content-Disposition: "",
Content-Encoding: "",
Content-Language: "",
Content-Type: "video/x-ms-wmv",
Expires: "",
Website-Redirect-Location: "",
Server-Side-Encryption: "",
SSECustomerAlgorithm: "",
SSECustomerKeyMD5: "",
Request-Id: "43AD99D48F****E"
同时,文档声称元数据应该是返回的字段之一:

Metadata => (associative-array<string>)
Associative array of <string> keys mapping to (string) values. Each array key should be    changed to an appropriate <string>.

A map of metadata to store with the object in S3.
<string> => (string)
The metadata value.
元数据=>(关联数组)
映射到(字符串)值的键的关联数组。应将每个数组键更改为适当的。
要与S3中的对象一起存储的元数据映射。
=>(字符串)
元数据值。
仅供参考,我正在使用此文档

任何建议都值得赞赏,因为目前我找到的唯一解决方案是要么运行getObject(这是不可行的,因为它会下载整个对象),要么在每次调用时运行restoreObject并检查其异常代码。但这意味着在不恢复密钥(如果已存档)的情况下,不可能检查密钥的状态


谢谢。

我能拿到它。当我运行以下代码时:

$s3 = \Aws\S3\S3Client::factory($config);
$result = $s3->listObjects(array(
    'Bucket' => 'somebucket'
));
echo $result;
我得到了这个输出,它包含StorageClass:

[Name] => soembucket
[Prefix] => Array
    (
    )

[Marker] => Array
    (
    )

[MaxKeys] => 1000
[IsTruncated] =>
[Contents] => Array
    (
        [0] => Array
            (
                [Key] => e2014090520140911a.jpg
                [LastModified] => 2014-09-04T21:06:49.000Z
                [ETag] => "7ae0adc21a443ab8d4499cabaa54157b"
                [Size] => 101961
                [Owner] => Array
                    (
                        [ID] => 8c1a9525cee6d6caa294e524b4bb1d28481e53473cc48a26e714e89665cb7afc
                        [DisplayName] => amazon_aws
                    )

                [StorageClass] => STANDARD
            )

        [1] => Array
            (
                [Key] => e2014091220141002a.jpg
                [LastModified] => 2014-09-11T21:19:33.000Z
                [ETag] => "96882d755e7864bd01d75cb24673fb00"
                [Size] => 219311
                [Owner] => Array
                    (
                        [ID] => 8c1a9525cee6d6caa294e524b4bb1d28481e53473cc48a26e714e89665cb7afc
                        [DisplayName] => amazon_aws
                    )

                [StorageClass] => STANDARD
            )

    )

[EncodingType] =>
[RequestId] => 30BB77F212066343

我想我可以把我的钥匙放在Listbuck上,然后从那里得到StorageClass。谢谢,我会调查itExcellent的,这确实有效。似乎有点奇怪,head没有得到这个信息,但我可以接受这个:)