2013-07-18 6 views
6

क्या ऑब्जेक्ट को पूरी ऑब्जेक्ट प्राप्त किए बिना केवल कस्टम मेटाडेटा प्राप्त करना संभव है? मैंने एडब्ल्यूएस एसडीके PHP 2 को देखा है और बिना किसी स्पष्ट उत्तर के Google और SO की खोज की है, या हो सकता है कि सिर्फ उस उत्तर का उत्तर न दें जिसे मैं उम्मीद कर रहा हूं।ऑब्जेक्ट प्राप्त किए बिना s3 मेटाडेटा प्राप्त करें

धन्यवाद।

+0

किसी भी विशिष्ट भाषा के लिए आप देख रहे हैं? अगर मैं जानता था कि आप इसे कैसे करना चाहते हैं तो मैं एक नमूना एक साथ फेंक सकता हूं। 'GetObjectMetaData' ठीक वही करेगा। – EFeit

+0

ठीक है कि समझ में आता है। मैंने इसे इस पृष्ठ पर PHP के लिए सूचीबद्ध नहीं देखा http://docs.aws.amazon.com/aws-sdk-php-2/guide/latest/service-s3.html। हम आमतौर पर जावा का उपयोग करते हैं, लेकिन पर्यावरण के कारण हम हैं PHP में हम उपयोग कर रहे हैं। – Michael

उत्तर

5

शायद this PHP 2 के लिए मदद करेगा? यह गुज़ल ढांचे का उपयोग करता है जिसे मैं परिचित नहीं हूं।

एक हेडऑब्जेक्ट कमांड निष्पादित करता है: हेड ऑपरेशन वस्तु को वापस किए बिना किसी ऑब्जेक्ट से मेटाडेटा पुनर्प्राप्त करता है। यह ऑपरेशन उपयोगी है यदि आप केवल किसी ऑब्जेक्ट के मेटाडेटा में रूचि रखते हैं। HEAD का उपयोग करने के लिए, आपको ऑब्जेक्ट तक पहुंच प्राप्त करनी होगी।

अंतिम प्रयास guzzle फ्रेमवर्क (अपरीक्षित कोड) का उपयोग:

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()); 

पीएचपी 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

एडब्ल्यूएस एसडीके PHP 2 के साथ समाधान की तलाश में 2. अजीब लगता है कि वे इसे नवीनतम एसडीके से हटा देंगे। – Michael

+1

हाँ मुझे खेद है! मैं कुछ के साथ आने की कोशिश कर रहा हूं, लेकिन ऐसा लगता है कि PHP 2 के लिए दस्तावेज़ पिछले संस्करण की तुलना में बहुत अधिक जटिल हैं। मैंने कुछ जवाब जोड़ने के लिए अपना जवाब संपादित कर दिया है, हालांकि मुझे नहीं पता कि इसे कैसे कार्यान्वित किया जाए। – EFeit

+1

तो मैं केवल एकमात्र नहीं हूं जो देखता है कि PHP 2 दस्तावेज़ बहुत खराब हैं :)। खुशी है कि मैं अकेला नहीं हूँ। वास्तव में अजीब वे हटा देंगे, या उस कॉल को हटाने के लिए दिखाई देंगे। वास्तव में आदर्श रूप से हम सूची के साथ हमारे कस्टम मेटा डेटा प्राप्त करने में सक्षम होना चाहते हैं, लेकिन मुझे नहीं लगता कि यह किसी भी एसडीके के साथ संभव है। – Michael

1

एडब्ल्यूएस प्रमुख वस्तु 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']); 
संबंधित मुद्दे