0

ブラウザからファイルをアップロードしようとしていますが、まったく機能しません。

私のバケット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を使用しています (アップロード操作全体でサーバーを使用すると機能します)。

4

1 に答える 1

0

CORS認証を使用している場合、サーバーはワイルドカード(つまり「*」)を使用できないようです。これを確認してください。

バケットの AllowedOrigin ヘッダーでリクエスト元ドメインを指定してみましたか?

于 2013-12-01T22:38:22.803 に答える