2012-12-21 123 views
1

使用MultiPowUpload(flash文件上傳組件)將文件上傳到Amazon S3MultiPowUpload(Flash文件上傳組件)在上傳到Amazon S3時給出錯誤#2049

我只是用flash_amazons3generator.html文件來生成 「S3政策和簽名」 在VAR 的flashvars = {}粘貼。

但是,當我試圖上傳給我「錯誤#2049」。

這裏是我的S3政策和簽名

var flashvars = { 
     "uploadUrl": "http://myBucket.s3.amazonaws.com", 
     "amazonS3.accessKeyId": "xxxxxx", 
     "amazonS3.policy": "xxxxxx", 
     "amazonS3.signature": "xxxxx", 
     "amazonS3.acl": "public-read-write", 
     "amazonS3.key": "xxxxx" 
}; 

我還試圖用「是encodeURI」和「encodeURIComponent方法」的方法,可能是它的一個問題,是由於編碼卻無濟於事:

'policy': encodeURI(data.policy) 
'signature': encodeURIComponent(data.signature) 

任何想法,我要去哪裏錯了?

+0

[This](http://www.plupload.com/punbb/viewtopic.php?id=910)線程也類似於我的問題。這裏是我的'crossdomain.xml'文件代碼: '<?xml version =「1.0」?> <!DOCTYPE跨域策略系統「http://www.macromedia.com/xml/dtds/cross -domain-policy.dtd「> \t '。 我把下面的'crossdomain.xml'文件放在'myBucket'的根目錄下。但是仍然有錯誤#2049正在進行。 –

+0

在[亞馬遜論壇](https://forums.aws.amazon.com/message.jspa?messageID=110865)上也報告了類似的問題,但我沒有得到任何足夠的答案。任何人都有想法,解決方案是什麼? –

回答

1

我得到了解決方案,哪裏出錯了。解決方案是我錯過了一件重要的事情。我應該將crossdomain.xml文件的內容類型設置爲text/xml。

下面的圖片將有所幫助。如何設置: crossdomain.xml file to text/xml

0

請注意,您應該將crossdomain.xml文件放在您的存儲桶的根目錄下,以便允許MultiPowUpload將文件上傳到此存儲桶。 並授予此文件「公開閱讀」權限。在MultiPowUpload文檔中閱讀有關跨域安全策略的更多信息。

你可以閱讀更多的教程 http://www.element-it.com/OnlineHelpMulti/Tutorial.html#amazon

在這裏你可以看到上傳到S3服務器正常工作: demo.element-it.com/Examples/MultiPow/flash_uploadtoamazons3.html

你也可以從elemen-s3存儲桶中抓取crossdomain.xml: http://element-it.s3.amazonaws.com/crossdomain.xml

如果您有任何與我們的產品有關的問題,請隨時聯繫Element-IT支持團隊。

+0

感謝Viktor的幫助。我已經做了你正在說的話。在完成所有這些預防措施後,我仍然在將文件上傳到Amazon S3時收到了「錯誤#2049」。 –