2015-08-24 1 views
3

Je cherche à récupérer des méta-données définies par l'utilisateur à partir d'objets dans mon compartiment S3, à partir de php sdk.Récupérer des métadonnées d'utilisateur d'objet dans S3 - aws sdk v3 php

Comme par Editing Object Meta Data, les métadonnées utilisateur sont stockées avec l'objet et retourné avec elle, et commencent par « x-amz-méta- »

J'ai défini les métadonnées utilisateur sur des objets via la console comme « x-amz -meta-test ", à la fois le temps de téléchargement, et l'ajout après le téléchargement (via la console Web, pas l'API de téléchargement).

Les métadonnées de test ne sont jamais renvoyées. Je reçois toujours les mêmes métadonnées du système. C'est, je reçois seulement les clés suivantes @metadata:

Dossier

statuscode 
effectiveUri 
headers 
    x-amz-id-2 
    x-amz-request-id 
    date 
    x-amz-bucket-region 
    content-type 
    transfer-encoding 
    server 

Objets

Key 
LastModified 
    date 
    timezone_type 
    timezone 
ETag 
Size 
StorageClass 

Cependant, pour y parvenir dans d'autres langues, un simple appel de méthode est impliqué.

Get User Metadata in Android SDK

Get User Metadata in Java SDK

Comment puis-je faire pour accomplir la même tâche dans le SDK PHP?

Toute aide serait grandement appréciée :)

Répondre

3

J'ai eu le même problème avec le SDK AWS pour PHP v3. Après quelques recherches et d'essais, je décidai que je pouvais utiliser headObject:

<?php 
    $headers = $s3->headObject(array(
     "Bucket" => $bucket, 
     "Key" => $key 
    )); 

    print_r($headers->toArray()); 
?> 

Exemple sortie avec des métadonnées définies par le système et d'autres informations anonymisées:

Array 
(
/* REMOVED */ 
    [Metadata] => Array 
     (
      [orderdate] => Mon, 31 Aug 2015 19:03:52 +0000 
      [color] => green 
      [fruit] => apple 
      [price] => 99.95 
     ) 
/* REMOVED */ 
    [@metadata] => Array 
     (
      [statusCode] => 200 
      [effectiveUri] => https://s3.amazonaws.com/REMOVED/REMOVED 
      [headers] => Array 
       (
        [x-amz-id-2] => REMOVED 
        [x-amz-request-id] => REMOVED 
        [date] => Wed, 02 Sep 2015 04:43:02 GMT 
        [x-amz-meta-orderdate] => Mon, 31 Aug 2015 19:03:52 +0000 
        [x-amz-meta-color] => green 
        [x-amz-meta-fruit] => apple 
        [x-amz-meta-price] => 99.95 
        [last-modified] => Wed, 02 Sep 2015 04:11:13 GMT 
        [etag] => "REMOVED" 
        [x-amz-storage-class] => REDUCED_REDUNDANCY 
        [accept-ranges] => bytes 
        [content-type] => application/octet-stream 
        [content-length] => 80771 
        [server] => AmazonS3 
       ) 
     ) 
) 
+1

Merci un bouquet! Cela fonctionne parfaitement. Merci pour l'exemple détaillé –