ブラウザからファイルをアップロードしようとしていますが、まったく機能しません。
私のバケットCORS構成は次のとおりです。
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>PUT</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<AllowedMethod>GET</AllowedMethod>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>
そして私のコードでは、これを送信しています:
xhr.open('PUT', "http://upload.test.s3.amazonaws.com/" + uploadFile.get("dest") +'?' + "partNumber=" + (part + 1) + "&" + "uploadId=" + uploadFile.get("uploadId"), true);
xhr.setRequestHeader("Authorization", uploadFile.get("authorization"));
xhr.setRequestHeader("x-amz-date", uploadFile.get("date"));
xhr.setRequestHeader("Content-Type", uploadFile.get("rawFile").type);
xhr.setRequestHeader("x-amz-acl", "public-read");
xhr.send(chunk);
Ps: uploadFile には、認証キーやサーバーから取得した uploadId などのプロパティがいくつかあります。
アップロードが開始されると、OPTIONS リクエストを通過しますが、Put リクエストは数秒後に中止されます (通常、コンテンツ パーセンテージを送信してから 4 ~ 5 秒後)。残念ながら、フィードバックなしで中止されます。誰が何が起こっているのか知っていますか??
ありがとう!
編集: 基本的に、マルチパート アップロードから UploadId を取得するためにhttps://github.com/LearnBoost/knoxを使用しています (アップロード操作全体でサーバーを使用すると機能します)。