簡體   English   中英

使用 AJAX 直接上傳到亞馬遜 S3 返回錯誤:Bucket POST 必須包含名為“key”的字段

[英]Upload Directly to amazon S3 using AJAX returning error: Bucket POST must contain a field named 'key'

我正在嘗試將文件從瀏覽器上傳到 s3 亞馬遜,我修改了 CORS 策略規則以允許存儲桶的帖子,但我收到錯誤

    <?xml version="1.0" encoding="UTF-8"?>
    <Error><Code>InvalidArgument</Code><Message>Bucket POST must contain a field named 'key'.  If it is specified, please check the order of the fields.</Message>
<ArgumentValue></ArgumentValue><ArgumentName>key</ArgumentName><RequestId>1E0A8DC78C0CEA9A</RequestId><HostId>XN38Qje9hUrGqHNIhtT8CtowX9tXlpyfEoaXb1UNxlsyLOWreh2mKqKVXg1zjLVl</HostId></Error>

這是我的請求和響應,我以正確的順序傳遞關鍵參數仍然收到此錯誤

http://screencast.com/t/9ZUQO0s9d

http://screencast.com/t/CL8MKq6l6

誰能告訴我有什么問題,我正在使用 FormData 提交請求

任何幫助將不勝感激。

謝謝

編輯:這是代碼請檢查

var form_data = new FormData();         
                form_data.append('file',hdlr.file);
                //form_data.append('crop_type',settings.get_cropped_type());
                //form_data.append('attributes',JSON.stringify(file_attr));
                $('input:hidden',$form).each(function(){

                    form_data.append(this.name,this.value);

                });


                //finally post the file through AJAX  
                var xhr = new XMLHttpRequest();  
                xhr.open("POST", $form[0].action, true);  
                xhr.send(form_data);

在此處輸入圖片說明

看起來您的文件表單字段首先出現在請求中。 我不能確定,因為您沒有在答案中包含整個請求有效負載,但看起來這只是出現在“鍵”字段上方。 AWS 會忽略請求中文件字段之后的所有字段,因此所有其他字段必須出現在文件之前。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM