0

私が使用して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

答えて

0

ユニークなトークンの概念を使用しては、もはやほとんどの場合必要ありません。オブジェクト変更通知は、認証されていないHTTPS呼び出しを構成可能なエンドポイントに送信することによって機能していたため、それらを提供しました。そのエンドポイントが検出された場合、悪意のあるユーザーもそのような呼び出しを送信する可能性があります。ただし、クラウドパブ/サブ通知は、既知のサービスアカウントとしてトピックにメッセージを公開します。また、悪質な第三者にもそのトピックへの公開許可が与えられていない限り、干渉することはできません。必要に応じて、第2の保護メカニズムとして固有のトークンを含めることができますが、一般的には不要です。

「クライアントトークン」は、オブジェクト変更通知に固有の機能です。クラウドパブリッシング/サブ統合と同等の機能は、通知ごとに特別な属性として付加される通知設定のユーザ指定のプロパティである「custom_attributes」です。必要に応じて、 "unique_token"属性を追加して値を付けることができます。

署名付きURLを使用する場合、カスタムメタデータの設定は、HTTPヘッダーx-goog-meta-で開始します。たとえば、x-goog-meta-stuff: Fooは、カスタム属性ペア「stuff:Foo」を作成します。

+0

@BlueBoyカスタムデータを渡す際に署名付きURLを作成したときに特別な作業を行う必要がありましたか? – Raunak

+0

@ brandon-yarbrough上記の考えは? – Raunak

+0

@raunakはい、カスタムメタデータを使用してリクエストに署名する場合は、署名にヘッダーを含め、クライアントから送信する必要があります。 https://cloud.google.com/storage/docs/access-control/signed-urls#about-canonical-extension-headersをご覧ください。 –

関連する問題