私が使用してGoogleクラウドストレージクラウドパブ/サブ通知を設定することができました:GCSオブジェクトが署名されたURLを介してアップロードされたときにクラウドパブ/サブでカスタムデータを送信する方法
gsutil notification create -t [TOPIC_NAME] -m my-key:my-value -f json gs://[BUCKET_NAME]
私のApp Engineをサーブレットは、オブジェクトがGCSにアップロードされるたびにメッセージを正しく取得します。署名されたURLを使用してオブジェクトをGCSにアップロードします。
しかし、Signed URLを使用してオブジェクトをアップロードするときに、クライアントからカスタムのKey-Valueペアを設定する方法がわかりません。上記のgsutil
コマンドを使用すると、キー:値のペアを設定できますが、ハードコーディングすると便利ではありません。私のクライアントでは、user : some-user
のようなキーと値のペアを設定したいので、サーブレットでデータベースへの書き込みのような追加のApp Engineの処理を行うことができます。
私はhereを示すようmetadata
タグ内のいくつかのヘッダーをアップロードしようとしたが、サーブレットでHttpServletRequest
からこれらのヘッダを取得して動作するようには思えませんでした。
subscriptionUniqueToken
も送信する方法はありません。その方法についての説明はありません。
注:Java
@BlueBoyカスタムデータを渡す際に署名付きURLを作成したときに特別な作業を行う必要がありましたか? – Raunak
@ brandon-yarbrough上記の考えは? – Raunak
@raunakはい、カスタムメタデータを使用してリクエストに署名する場合は、署名にヘッダーを含め、クライアントから送信する必要があります。 https://cloud.google.com/storage/docs/access-control/signed-urls#about-canonical-extension-headersをご覧ください。 –