AJAX経由でS3マルチパートファイルに直接アップロードしています。IE を除くすべてのブラウザですべて正常に動作します。
S3 では、Authorization
アップロードされるファイル スライスの署名を含む各 POST リクエストに HTTP ヘッダーが必要です。
IE がリクエストからこのヘッダーを取り除き、403 レスポンスを返しているようです。さらに面白いのは、IE が別のカスタム S3 ヘッダーを削除しないことです: x-amz-date
.
「Authorization」ヘッダーを強制する方法はありますか?
要求に応じて、ここに私のコードがあります:
initiateUpload: function() {
var response = this.sign({method:'POST', path: this.key + '?uploads'});
this.request({
method: 'POST',
url: response.url,
headers: {
'x-amz-date': response.date,
'Authorization': response.signature
},
onLoad: this.uploadParts.bind(this)
});
},
request: function(params){
var xhr = new XMLHttpRequest();
if (params.onLoad) xhr.addEventListener("load", params.onLoad, false);
if (params.onUploadStart) xhr.upload.onloadstart = params.onUploadStart;
if (params.onUploadProgress) xhr.upload.onprogress = params.onUploadProgress;
xhr.open(params.method, params.url, true);
for (h in params.headers)
xhr.setRequestHeader(h, params.headers[h]);
xhr.send(params.body);
},