7

私は、画像ファイルを保存および取得するためのデータストアとブロブストアに関するスタックオーバーフロー全体を読んでいます。プライバシーとセキュリティという1つを除いて、すべてがblobstoreを指しています。

データストアでは、ユーザーの写真は非公開です。ブロブを取得するユーザーを完全に制御できます。しかし、ブロブストアでは、URLを知っている人なら誰でも私のユーザーの写真にアクセスできると考えられますか?本当?

これは私に安心を与えるはずの引用ですが、それでもはっきりしていません。では、blobキーを持っている人なら誰でも写真にアクセスできますか?(BlobstoreのStorePhotosまたはDatastoreのBlobsから-どちらがより良い/より効率的/安いですか?

Blobstoreから値を提供する方法は、アプリへのリクエストを受け入れてから、キーを使用してX-AppEngine-BlobKeyヘッダーで応答することです。App Engineは発信応答をインターセプトし、本文をサービスから直接ストリーミングされたBlobstore値に置き換えます。アプリロジックは最初にヘッダーを設定するため、アプリは必要なアクセス制御を実装できます。アプリの介入なしにBlobstoreから直接値を提供するデフォルトのURLはありません。

これはすべて、画像のトラフィッキングに対してよりプライベートで安全なのはどれか、そしてその理由はデータストアとブロブストアのどちらであるかを尋ねることです。または、ねえ、google-cloud-storage(私は現在何も知りません)

4

2 に答える 2

2

google.appengine.api.images.get_serving_url を使用する場合、はい、返される URL は publicです。ただし、返される URL は BLOB のキーから推測できません。また、get_serving_url を呼び出す前に URL が存在することさえありません。(または delete_serving_url を呼び出した後)。

ブロブストア内のデータに加えてアクセス制御が必要な場合は、独自のハンドラーを作成し、そこにアクセス制御を追加できます。

于 2013-03-21T17:13:04.180 に答える
0

BlobPropertyは と同じくらいプライベートで安全ですがBlobStore、すべてはリクエストを処理するアプリケーションに依存します。あなたのアプリケーションは、コンテンツをユーザーに送信する前にパーミッション チェックを実装できるため、すべての画像を自分で提供し、公開されている URL を意図的に作成しない限り、違いはわかりません。

実際、私は写真を に保存することについて考えさえしませんでしBlobPropertyた。この方法では、データが ではなくデータベースにBlobStore保存され、データベースにデータを保存するためのコストが大幅に高くなるためです。BlobStore、一方で、安くて便利です。

于 2013-03-22T00:00:25.000 に答える