2015-05-28 11 views
13

मैंने वेब पर अब दो दिनों से खोज की है, और शायद अधिकांश ऑनलाइन दस्तावेज परिदृश्यों और कामकाजों के माध्यम से देखा है, लेकिन अब तक मेरे लिए कुछ भी काम नहीं किया है।'कैसे हस्ताक्षर किए गए अनुरोध हस्ताक्षर को हस्ताक्षर' त्रुटि से मेल नहीं खाता है?

मैं PHP 5.3 पर चल रहे PHP V2.8.7 के लिए एडब्ल्यूएस एसडीके पर हूं। मैं निम्नलिखित कोड के साथ मेरी S3 बाल्टी से कनेक्ट करने के कोशिश कर रहा हूँ:

// Create a `Aws` object using a configuration file 

     $aws = Aws::factory('config.php'); 

     // Get the client from the service locator by namespace 
     $s3Client = $aws->get('s3'); 

     $bucket = "xxx"; 
     $keyname = "xxx"; 

     try { 
      $result = $s3Client->putObject(array(
       'Bucket'  =>  $bucket, 
       'Key'   =>  $keyname, 
       'Body'   =>  'Hello World!' 
      )); 
      $file_error = false; 
     } catch (Exception $e) { 
      $file_error = true; 
      echo $e->getMessage(); 
      die(); 
     } 
     // 

मेरे config.php फाइल इस प्रकार है:

<?php 

return array(
    // Bootstrap the configuration file with AWS specific features 
    'includes' => array('_aws'), 
    'services' => array(
     // All AWS clients extend from 'default_settings'. Here we are 
     // overriding 'default_settings' with our default credentials and 
     // providing a default region setting. 
     'default_settings' => array(
      'params' => array(
       'credentials' => array(
        'key' => 'key', 
        'secret' => 'secret' 
       ) 
      ) 
     ) 
    ) 
); 

यह निम्न त्रुटि उत्पादन किया जाता है:

The request signature we calculated does not match the signature you provided. Check your key and signing method.

मैंने पहले से ही अपनी एक्सेस कुंजी और गुप्त को चेक किया है, कम से कम 20 बार, जेनरेट किए गए नए, सूचना में पास करने के लिए विभिन्न विधियों का उपयोग किया जाता है (यानी प्रोफ़ाइल और कोड में क्रेडेंशियल समेत) लेकिन इस समय कुछ भी काम नहीं कर रहा है।

+1

तो, एडब्ल्यूएस एसडीके सिर्फ प्रत्यक्ष एपीआई कॉल का एक गुच्छा लागू करता है। एडब्ल्यूएस के साथ, आपके द्वारा बनाई जाने वाली प्रत्येक एकल कॉल आपकी निजी कुंजी (या ऊपर 'गुप्त') लेती है, और इसका उपयोग आपकी एक्सेस कुंजी, वर्तमान टाइमस्टैम्प, साथ ही अन्य कारकों के समूह के आधार पर हस्ताक्षर की गणना करने के लिए करती है। Http://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html देखें। यह एक लंबा शॉट है, लेकिन यह देखते हुए कि वे टाइमस्टैम्प शामिल करते हैं, शायद आपके स्थानीय पर्यावरण का समय बंद है? –

उत्तर

18

डिबगिंग के दो दिनों के बाद, मैं अंत में समस्या ...

कुंजी मैं वस्तु को बताए था अवधि यानी के साथ शुरू किया .. \ छवियों \ ABC.jpg की खोज की है, और इस के लिए त्रुटि के कारण पाए जाते हैं।

मेरी इच्छा है कि एपीआई अधिक सार्थक और प्रासंगिक त्रुटि संदेश प्रदान करे, हां, मुझे उम्मीद है कि यह किसी और की मदद करेगा!

+4

मेरी इच्छा है कि मेरे लिए काम करें :( – vcardillo

3

मुझे यह त्रुटि गलत क्रेडेंशियल्स के साथ मिलती है। मुझे लगता है कि जब मैंने इसे मूल रूप से चिपकाया तो अदृश्य पात्र थे।

2

मुझे कुछ समस्या थी जब किसी ऑब्जेक्ट को कुछ यूटीएफ 8 अक्षरों के साथ कॉपी करने का प्रयास किया गया था।

var s3 = new AWS.S3(); 

s3.copyObject({ 
    Bucket: 'somebucket', 
    CopySource: 'path/to/Weird_file_name_ðÓpíu.jpg', 
    Key: 'destination/key.jpg', 
    ACL: 'authenticated-read' 
}, cb); 

साथ encodeURIComponent()

0

जावा में वास्तव में मैं इसे डिबग करने के लिए मुझे क्या मिला है कि समस्या मेटा में था कि एक ही error.After खर्च 4 घंटे हो रही थी CopySource एन्कोडिंग द्वारा हल: नीचे एक जे एस उदाहरण है एस 3 ऑब्जेक्ट्स में डेटा के रूप में एस 3 फाइलों में कैश नियंत्रण बैठे हुए स्थान था। इस जगह को 1.6 में * संस्करण दिया गया था लेकिन 1.11 में। * इसे अस्वीकार कर दिया गया था और इस प्रकार हस्ताक्षर विसंगति त्रुटि

0

मुझे एक ही त्रुटि थी , लेकिन मेरे लिए ऐसा लगता है कि एक आईएएम उपयोगकर्ता को फिर से दो अलग-अलग लोचदार बीन में एस 3 के साथ काम करने के लिए उपयोग किया जाता है डंठल वातावरण। मैंने द्वारा प्रत्येक वातावरण के लिए एक समान रूप से अनुमत आईएएम उपयोगकर्ता बनाने के लक्षण का इलाज किया और इससे त्रुटि दूर हो गई।

0

अन्य उल्लेख समाधान से कोई भी आप के लिए काम करता है, तो

aws configure 

this command का उपयोग कर विकल्प कुंजी, क्षेत्र और उत्पादन प्रारूप के लिए पूछ का एक सेट खुलेगा प्रयास करें।

आशा है कि इससे मदद मिलती है!

0

मुझे बस प्रतिक्रियात्मक मूल के साथ एडब्ल्यूएस एसडीके का उपयोग करके एस 3 पर एक छवि अपलोड करने का अनुभव हुआ। यह ContentEncoding पैरामीटर के कारण हुआ।

उस पैरामीटर को "निश्चित" समस्या को हटा रहा है।

संबंधित मुद्दे