2016-05-08 10 views
0

この質問では、部分的にthis oneを参照しています。再開可能なアップロードで「Access-Control-Allow-Origin」ヘッダーがまだありません

ノード用のgcloud-packageを使用して、私のサーバー上で認証されたリクエストを含むアップロードURIを生成しています。これは、ファイルのcreateResumableUploadメソッドで行われます。実際のアップロードはブラウザで行われます。ブラウザは同じ起源ではありません。

現在のところ、このヘッダーが存在しないため、OPTIONS要求が正常に動作しているため、PUT要求がキャンセルされています。

Some fields have been blanked

私はどのなしの仕事の3つのソリューションを見つけました。およそCORS on Google Cloud Storage文書のトラブルシューティングのリストの数8に

  1. 、XML CORSのAPIを使用して、*(ワイルドカード)に起源を設定することをお勧めします。これは時代遅れですが、APIがJSONに切り替えたので、それ以降はヘッダーは設定されません。私はこれをワイルドカードに設定しなければならないことも嫌い、かなり不安です。
  2. アップロードURIを*に生成するときにCORSオプションを設定し、実際の起点を指定しても無視されます。
  3. クエリ文字列パラメータとしてCORSを設定します。これも無視されます。

ここに何かが見つからない、または2年後にまだ解決されていませんか?

答えて

0

Brandon Yarbrough's answerのおかげで、私の状況を修正することができました。

この点については、かなり簡単な解決策があります。要求インターセプタを使用してorigin -headerを設定し、オプションとしてバケット内のファイルのcreateResumableUploadのメソッドに指定します。

これで、ブラウザからアップロードを完了できます。

1

残念ながら、これはまだサポートされていません。再開可能なアップロードは、論理的には1つの操作と見なされます。これは、1つのリモートエンティティを含むと見なされます。私が理解しているように、最初のOriginヘッダーだけが尊重されます。

これを回避するには、いくつかの方法があります。最善の方法は、サーバーがURLに署名し、クライアントがアップロードを開始できるようにすることです。また、アップロードを開始するときに、クライアントが使用するOriginヘッダーをサーバーに提供して、操作全体を通して一貫性を保つこともできます。

+0

十分に適切です。ある意味では意味がありますが、機能の実装にはかなりの制限があります。とにかく、あなたの考えに感謝します! –

関連する問題