1

저는 S3 위에 파일 관리자를 구현하고 있으며 현재 LifeCycles를 통해 완벽한 빙하 아카이브를 구현하려고합니다. LifeCycles의 S3 측면은 매우 간단합니다. 그러나 키의 실제 저장 클래스를 반환하는 메서드를 찾을 수 없습니다. 그것은 S3 제어판이 보여준 이후로 분명히 가능합니다. 스토리지 클래스 문서에서 AWS SDK를 사용하여 스토리지 클래스 쿼리

들은이 메타 데이터 객체 ( S3 Using Metadata) 나타나야 언급 : 객체를 저장하기 위해 사용

X-AMZ 저장 급 스토리지 클래스.

headObject 설명서에 메타 데이터가 반환된다고 나와 있지만 실행하면 메타 데이터 블록이 반환되지 않습니다. 참고로

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. 

, 나는 AWS SDK for PHP

어떤 조언을 현재 전용으로 감사이 문서를 사용하고 있습니다 :

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" 

한편 문서는 메타 데이터 필드 중 하나가 반환되어야한다고 주장 내가 찾은 해결책은 getObject (전체 객체를 다운로드 할 것이므로 실행 가능하지 않음)를 실행하거나 모든 호출에서 restoreObject를 실행하고 예외 코드를 확인하는 것입니다. 하지만 키의 상태를 복원하지 않고 확인할 수는 없습니다 (보관 된 경우).

감사합니다.

답변

2

나는 그것을 얻을 수 있었다. 나는 다음과 같은 코드를 실행하면 :

$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 
+0

나는 내 키 단지 listBucket을 할 수 있었던 거기에서 StorageClass를 얻을 것 같아요. 고마워, 나는 그것을 조사 할 것이다 – maddios

+0

훌륭하다. 머리가이 정보를 얻지 못하는 이상한 것 같지만 이걸로 살 수 있어요 :) – maddios