2013-07-18 4 views
6

전체 개체를 가져올 필요없이 S3의 개체 사용자 지정 메타 데이터 만 가져올 수 있습니까? 나는 AWS SDK PHP 2를 살펴 보았고 google과 so를 명확한 답변으로 찾지 않았거나, 내가 원하는 답변이 아닐 수도 있습니다.개체를 가져 오지 않고 s3 메타 데이터 가져 오기

감사합니다.

+0

당신이 찾고있는 어떤 특정 언어? 내가 어떻게하면 좋을지 알면 표본을 던질 수있다. 'GetObjectMetaData'는 정확히 그것을 할 것입니다. – EFeit

+0

그게 말이 될 것입니다. 이 페이지에서 PHP에 대한 목록이 표시되지 않았습니다. http://docs.aws.amazon.com/aws-sdk-php-2/guide/latest/service-s3.html. 일반적으로 Java를 사용하지만 환경 때문에 PHP를 사용하고 있습니다. – Michael

답변

5

아마도 this은 PHP 2에 도움이됩니까? 그것은 익숙하지 않은 Guzzle 프레임 워크를 사용합니다.

HeadObject 명령을 실행합니다. HEAD 작업은 개체 자체를 반환하지 않고 개체에서 메타 데이터를 검색합니다. 이 작업은 객체의 메타 데이터에만 관심이있는 경우 유용합니다. HEAD를 사용하려면 객체에 대한 읽기 액세스 권한이 있어야합니다.

목구멍 프레임 워크 (테스트되지 않은 코드)를 사용하여 최종 시도 :

use Guzzle\Service\Resource\Model 
use Aws\Common\Enum\Region; 
use Aws\S3\S3Client; 

$client = S3Client::factory(array(
    "key" => "YOUR ACCESS KEY ID", 
    "secret" => "YOUR SECRET ACCESS KEY", 
    "region" => Region::US_EAST_1, 
    "scheme" => "http", 
)); 

// HEAD object 
$headers = $client->headObject(array(
    "Bucket" => "your-bucket", 
    "Key" => "your-key" 
)); 
print_r($headers->toArray()); 

PHP 1.6.2 솔루션

// Instantiate the class 
$s3 = new AmazonS3(); 
$bucket = 'my-bucket' . strtolower($s3->key); 

$response = $s3->get_object_metadata($bucket, 'üpløåd/î\'vé nøw béén üpløådéd.txt'); 

// Success? 
var_dump($response['ContentType']); 
var_dump($response['Headers']['content-language']); 
var_dump($response['Headers']['x-amz-meta-ice-ice-baby']); 

신용에 : http://docs.aws.amazon.com/AWSSDKforPHP/latest/#m=AmazonS3/get_object_metadata

희망하는 데 도움이 !

+0

AWS SDK PHP 2를 사용하는 솔루션을 찾고 있습니다. 최신 SDK에서이를 제거하는 것이 이상하게 보입니다. – Michael

+1

예. 죄송합니다. 나는 무엇인가를 찾으려고 노력하고있다. 그러나 PHP 2를위한 문서는 이전 버전보다 훨씬 복잡한 것처럼 보인다. 내 대답을 편집 해 도움이 될만한 것을 추가했지만 구현 방법을 모르겠습니다. – EFeit

+1

그래서 저는 PHP 2 문서가 꽤 나쁜 것만보고있는 것은 아닙니다 :). 다행이 아닙니다. 정말 이상한 사람들은 전화를 끊거나 제거하려고하는 것 같습니다. 정말 이상적으로 우리는 사용자 지정 메타 데이터를 목록과 함께받을 수 있기를 원하지만 모든 SDK에서 가능하지는 않습니다. – Michael

1

AWS의 HEAD 개체 http://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectHEAD.html

use Aws\S3\S3Client; 
use Guzzle\Common\Collection; 

$client = S3Client::factory(array(
'key' => 'YOUR-AWS-KEY', 
'secret' => 'YOUR-SECRET-KEY' 
)); 

// Use Guzzle's toArray() method. 

$result = $client->headObject(['Bucket' => 'YOUR-BUCKET-NAME', 'Key' => 'YOUR-FILE-NAME'])->toArray(); 

print_r($result['Metadata']); 
관련 문제