我试图仅使用给我的临时凭据(访问密钥、密钥、令牌)上传到亚马逊 s3。
这是我的js代码
$(':button').click(function()
{
var file = document.getElementById('file').files[0];
console.log(file);
var formData = new FormData(); //$('form')[0]
formData.append("key", folder+file.name);
formData.append("acl", acl);
formData.append("success_action_redirect", "201");
formData.append("Content-Type", "image/png");
formData.append("AWSAccessKeyId", accesskey);
formData.append("Policy", policy);
formData.append("Signature", signature);
formData.append("x-amz-security-token", token);
formData.append("file", file);
$.ajax({
url: 'http://dev-multiplayertv-telefun-me.s3.amazonaws.com', //Server script to process data
type: 'POST',
xhr: function() { // Custom XMLHttpRequest
var myXhr = $.ajaxSettings.xhr();
if(myXhr.upload){ // Check if upload property exists
myXhr.upload.addEventListener('progress',progressHandlingFunction, false); // For handling the progress of the upload
}
return myXhr;
},
//Ajax events
beforeSend: function(e) {
// e.setRequestHeader("Authorization", "AWS "+accesskey+":"+signature);
// e.setRequestHeader("x-amz-date", xdate);
e.setRequestHeader("x-amz-security-token", token);
// alert('Are you sure you want to upload document.');
},
success: function(e) { alert('Upload completed'); } ,
error: function(jqXHR, textStatus, errorThrown) {
console.log(textStatus);
console.log(errorThrown);
} ,
// Form data
data: formData,
//Options to tell jQuery not to process data or worry about content-type.
cache: false,
contentType: false,
processData: false
});
});
这是我的政策:
var POLICY_JSON = { "expiration": "2013-12-03T12:29:27.000Z",
"conditions": [
{"bucket": bucket},
["starts-with", "$key", folder],
{"acl": acl},
{"success_action_redirect": "201"},
["starts-with", "$Content-Type", "image/"],
{"x-amz-security-token": token}
]
};
但不知何故,它给了我这个:内部错误。我们遇到了内部错误。请再试一次。