3
我使用YUI Uploader嘗試直接上傳到S3。 HTML5版本可以正常工作,但是當我回退到Flash時,它失敗了。 S3被踢回錯誤:使用Flash上傳到S3不起作用
<Message>Invalid according to Policy: Extra input fields: filename</Message>
但我的政策的文檔看起來是這樣的:
{"expiration": "2012-12-20T11:05:43Z", "conditions": [
{"Content-Disposition": "attachment" },
["eq", "$success_action_status", "201"],
{"bucket": "my-bucket" },
["starts-with", "$Filename", ""],
["starts-with", "$key", ""],
{"acl": "public-read" }]}
正如你所看到的,我已經得到了「$文件名」中就有了。我不明白爲什麼S3不接受請求。 (「我的桶」只是一個佔位符,而不是桶的真實名稱)。
我做了測試後到本地端點,並使用POST看起來是這樣的:
------------GI3ae0cH2gL6Ij5gL6GI3Ef1Ij5GI3
Content-Disposition: form-data; name="Filename"
test.gif
------------GI3ae0cH2gL6Ij5gL6GI3Ef1Ij5GI3
Content-Disposition: form-data; name="AWSAccessKeyId"
<access key>
------------GI3ae0cH2gL6Ij5gL6GI3Ef1Ij5GI3
Content-Disposition: form-data; name="key"
uploads/1f9ba441-49c6-4c5-aa22-c2ea21335218.jpg
------------GI3ae0cH2gL6Ij5gL6GI3Ef1Ij5GI3
Content-Disposition: form-data; name="signature"
jEc1kK72mwBoqHKfo+J31UFUv+E=
------------GI3ae0cH2gL6Ij5gL6GI3Ef1Ij5GI3
Content-Disposition: form-data; name="policy"
eyJleHBpcmF0aW9uIjogIjIwMTItMTItMjBUMTE6MTg6MDNaIiwgImNvbmRpdGlvbnMiOiBbeyJidWNrZXQiOiAid2FwdS1ncmVnLWRldiIgfSwgWyJzdGFydHMtd2l0aCIsICIka2V5IiwgIiJdLCB7ImFjbCI6ICJwdWJsaWMtcmVhZCIgfV19
------------GI3ae0cH2gL6Ij5gL6GI3Ef1Ij5GI3
Content-Disposition: form-data; name="acl"
public-read
------------GI3ae0cH2gL6Ij5gL6GI3Ef1Ij5GI3
Content-Disposition: form-data; name="file"; filename="test.gif"
Content-Type: application/octet-stream
<file content removed for brevity>
------------GI3ae0cH2gL6Ij5gL6GI3Ef1Ij5GI3
Content-Disposition: form-data; name="Upload"
Submit Query
------------GI3ae0cH2gL6Ij5gL6GI3Ef1Ij5GI3--