我想使用FineUploader的新功能,允許直接上傳到亞馬遜s3。目前,我無法上傳照片。我收到錯誤: 「無效的政策文檔或請求標題!」接收無效的政策文件或請求標題錯誤當使用fineuploader亞馬遜s3
開發人員要求將問題發佈到此處的計算器上。
我下面這個網頁上的說明:
在設置的東西了,我也效仿掛在那裏的示例文件: https://github.com/Widen/fine-uploader-server/blob/master/php/s3/s3demo.php
我有我的javascript成立因此有很少的選擇:
$('#fineuploader-s3').fineUploaderS3({
request: {
endpoint: "http://thenameofmybucket.s3.amazonaws.com",
accessKey: 「mypublicaccesskey」
},
signature: {
endpoint: "s3demo.php"
},
iframeSupport: {
localBlankPagePath: "/success.html"
},
cors: {
expected: true
}
});
我知道有很多p鞋帶可能會出現這種情況。我從來沒有使用s3或fineuploader,所以很抱歉,如果這些都是愚蠢的問題。但是,這裏是我在設置時感到最困惑的地方。我有一種感覺問題出在#1:
(1)在本例中的javascript,這是怎麼簽名的路徑設置:
// REQUIRED: Path to our local server where requests can be signed.
signature: {
endpoint: "/s3/signtureHandler"
},
我不知道這意味着是一個空文件,其中創建了一些json,或者它應該指向創建json的函數的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/*」
}]
}
,然後是一個用戶,我從中分別獲得了javascript和php文件中使用的公共和私人訪問密鑰。用戶名在腳本中的任何地方都沒有專門使用。
我希望有一些事情真的很明顯,我在這裏做的不對。謝謝你的時間。
回答問題(1)。 'signature.endpoint'選項應該指向php腳本。 –