2017-04-20 2 views
0

私は大規模なファイルをアップロードする必要があるWebアプリケーションを構築しています。 Google Cloud Storageを使用したいと考えています。私はドキュメントを読むのに数日を費やしましたが、ブラウザから実際にアップロードを開始する方法はまだ分かりません。署名入りのURLを使用してGoogle Cloud Storageにアップロードするライブラリですか?

この目的で、匿名ユーザーがバケットにアップロードできるように署名されたURLが必要であることを理解しています。これをサーバーで生成してブラウザに送信できます。

ただし、JavaScript Client Libraryは、ユーザーアカウントまたはサービスアカウントとして認証されたアプリケーションサーバー上でのみ実行されるように意図されています。たとえば、@google-cloud/storageパッケージには、署名付きURLを生成する方法がありますが、その署名付きURLを使用してファイルをアップロードする方法はありません。

私には何が欠けていますか?

PS - これらは大きなファイルになるため、再開可能なアップロードを行うとよいでしょう。

更新:私が(hints here)と言うことができるから、署名されたURLにPUTまたはPOSTする必要があります。だから私は、XHRを包む一般的なファイルアップロードユーティリティに邪魔にならないと思う。 (おそらくjQuery?)

答えて

1

私はそのようなライブラリが存在するとは思わない。あなたはおそらく標準のJavaScriptかお気に入りのライブラリを使ってHTTP呼び出しを削除したいと思うでしょう。

署名されたURLに最初のPOSTを行います。これには、同様に、201になります:

HTTP/1.1 201 Created 
Location: https://example.storage.googleapis.com/music.mp3?upload_id=tvA0ExBntDa...gAAEnB2Uowrot 
Date: Fri, 01 Oct 2010 21:56:18 GMT 
Content-Length: 0 
Content-Type: audio/mpeg 

するupload_idパラメータを含む「場所」ヘッダー、内のURLは、あなたがあなたのデータをPUTをフォローアップするだろうURLです。その操作を中断して再開することができます。

ここXMLで再開可能なアップロードを使用する正確にどのように多くのドキュメントがあります:https://cloud.google.com/storage/docs/xml-api/resumable-upload

+0

「私は、このようなライブラリが存在するとは思いません。」 GCPの重要性とGoogleがすでに提供しているコードの量を考えると、それは驚くべきことですが、大丈夫です。私はちょうど手動ですべてのステップとUIを実装するために一日を割り当てる必要があると思います...(XHRを解明した後、私は以前に直接使ったことはありません...) – odigity

+1

再開可能なアップロードサポートが必要ない場合は、一回の呼び出しで逃げることができます。 さらに簡単に見つかるかもしれない代替案は、ポリシー文書を含むPOSTフォームです。署名付きポリシーが追加された非表示のフィールドを除いて、HTMLフォームと同じように動作します:https://cloud.google.com/storage/docs/xml-api/post-object –

関連する問題