के लिए fineuploader का उपयोग करते समय अमान्य नीति दस्तावेज़ या अनुरोध हेडर त्रुटि प्राप्त करना मैं FineUploader की नई सुविधा का उपयोग करने की कोशिश कर रहा हूं जो सीधे अमेज़ॅन एस 3 पर अपलोड करने की अनुमति देता है। वर्तमान में, मैं फोटो अपलोड करने में सक्षम नहीं हूं। मुझे त्रुटि मिल रही है: "अमान्य नीति दस्तावेज़ या अनुरोध शीर्षलेख!"अमेज़ॅन एस 3
डेवलपर्स ने पूछा कि प्रश्न स्टैक ओवरफ्लो पर यहां पोस्ट किए जाएंगे।
मैं इस पेज पर उनके निर्देशों का पालन कर रहा हूँ: https://github.com/Widen/fine-uploader-server/blob/master/php/s3/s3demo.php
मैं अपने जावास्क्रिप्ट की स्थापना की है:
चीजों की स्थापना में, मैं भी उदाहरण फ़ाइल वहाँ से जुड़ा हुआ नकल करते है इस प्रकार बहुत कम विकल्पों के साथ:
$('#fineuploader-s3').fineUploaderS3({
request: {
endpoint: "http://thenameofmybucket.s3.amazonaws.com",
accessKey: “mypublicaccesskey”
},
signature: {
endpoint: "s3demo.php"
},
iframeSupport: {
localBlankPagePath: "/success.html"
},
cors: {
expected: true
}
});
मुझे पता है कि बहुत सारे पी हैं लेस जहां यह मेरे लिए गलत हो सकता था। मैंने पहले कभी एस 3 या फाइनअपलोडर का उपयोग नहीं किया है, इसलिए माफ करना अगर ये गूंगा प्रश्न हैं। लेकिन यहां ऐसे स्थान हैं जहां मुझे स्थापित करने में सबसे उलझन में लगा। मैं एक समस्या महसूस कर रही है # 1 में निहित है:
(1) उदाहरण जावास्क्रिप्ट, यह कैसे हस्ताक्षर करने के लिए पथ सेट किया गया है में: अगर है कि क्या मतलब है
// REQUIRED: Path to our local server where requests can be signed.
signature: {
endpoint: "/s3/signtureHandler"
},
मुझे यकीन है कि नहीं था एक खाली फ़ाइल होने के लिए जहां कुछ जेसन बनाया गया है या यदि यह php स्क्रिप्ट को इंगित करना है, जहां जेसन बनाने का कार्य है, तो मेरे मामले में s3demo.php है, जिसे मैंने सीधे कॉपी किया था।
(2) s3demo.php फ़ाइल में, केवल लाइनों मैं बदल इन थे:
$clientPrivateKey = $_SERVER['I put my private key here'];
$expectedBucket = "http://thenameofmybucket.s3.amazonaws.com";
function handlePreflightedRequest() {
// If you are relying on CORS, you will need to adjust the allowed domain here.
header('Access-Control-Allow-Origin: http://mywebsitename.org');
}
(3) यह वही है मैं अपने CORS फ़ाइल के लिए है, मुझे यकीन है कि अगर यह था नहीं था सही क्योंकि अनुदेशात्मक पृष्ठ पर उदाहरण टैग शामिल नहीं है:
<CORSRule>
<AllowedOrigin>http://mywebsitename.org</AllowedOrigin>
<AllowedMethod>POST</AllowedMethod>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
(4) के रूप में दिए गए निर्देशों में विस्तृत जानकारी दी, मैं IAM पैनल में चला गया और नीति निर्देश वास्तव में से नकल के साथ एक समूह बनाया है, लेकिन मेरी बाल्टी के वास्तविक नाम के साथ:
{
"Version":"2012-10-17",
"Statement":[{
"Effect":"Allow",
"Action":"s3:PutObject",
"Resource":"arn:aws:s3:::thenameofmybucket/*”
}]
}
, फिर एक उपयोगकर्ता जिस से मैंने क्रमशः जावास्क्रिप्ट और PHP फ़ाइलों में उपयोग की जाने वाली सार्वजनिक और निजी एक्सेस कुंजियां प्राप्त कीं। उपयोगकर्ता नाम विशेष रूप से स्क्रिप्ट में कहीं भी उपयोग नहीं किया जाता है।
मुझे आशा है कि कुछ सचमुच स्पष्ट है कि मैंने गलत तरीके से किया है। आपके समय के लिए धन्यवाद।
प्रश्न का उत्तर देने के लिए (1)। 'Signature.endpoint' विकल्प को php स्क्रिप्ट को इंगित करना चाहिए। –