2013-07-18 6 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, вы должны иметь READ-доступ к объекту.

Заключительная попытка использования рамки жрать (непроверенный код):

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 ГОЛОВА Объект 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']); 
Смежные вопросы