2013-07-18 13 views
6

È possibile ottenere solo gli oggetti metadati personalizzati da S3 senza dover ottenere l'intero oggetto? Ho esaminato l'SDS di AWS PHP 2 e ho cercato google e SO senza una risposta chiara, o forse non solo la risposta che spero.Ottieni metadati s3 senza ottenere oggetti

Grazie.

+0

qualunque lingua specifica che stai cercando? Potrei gettare un campione insieme se sapessi come volevi farlo. 'GetObjectMetaData' farebbe esattamente questo. – EFeit

+0

Beh, avrebbe senso. Non l'ho visto elencato per PHP in questa pagina http://docs.aws.amazon.com/aws-sdk-php-2/guide/latest/service-s3.html. Di solito usiamo Java ma, a causa dell'ambiente in cui ci troviamo, stiamo usando PHP. – Michael

risposta

5

Forse this sarebbe di aiuto per PHP 2? Usa il framework Guzzle che non conosco.

Esegue un comando HeadObject: L'operazione HEAD recupera i metadati da un oggetto senza restituire l'oggetto stesso. Questa operazione è utile se sei interessato solo ai metadati di un oggetto. Per utilizzare HEAD, è necessario disporre dell'accesso READ all'oggetto.

tentativo finale utilizzando Guzzle framework (codice non testato):

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 Soluzione

// 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']); 

di credito a: http://docs.aws.amazon.com/AWSSDKforPHP/latest/#m=AmazonS3/get_object_metadata

Speranza che aiuta !

+0

Alla ricerca di una soluzione con AWS SDK PHP 2. Sembra strano che rimuovano questo dall'ultimo SDK. – Michael

+1

Sì, mi dispiace! Sto cercando di inventare qualcosa, ma sembra che i documenti per PHP 2 siano molto più complicati della versione precedente. Ho modificato la mia risposta per aggiungere qualcosa che possa aiutare, tuttavia non so come implementarlo. – EFeit

+1

Quindi non sono l'unico che vede i documenti di PHP 2 sono piuttosto male :). Sono contento di non essere l'unico. Veramente strani sarebbero rimossi, o sembrano rimuovere quella chiamata. Veramente idealmente vorremmo essere in grado di ricevere i nostri metadati personalizzati con l'elenco, ma non penso che sia possibile con qualsiasi SDK. – Michael

1

AWS TESTA oggetto 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']); 
Problemi correlati