1

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);
},
4

0 に答える 0