ndb.BlobProperty vs BlobStore:更私密,更安全

时间:2013-03-21 15:34:14

标签: google-app-engine python-2.7 google-cloud-datastore blobstore google-cloud-storage

我一直在阅读有关数据存储区与blobstore的堆栈流,以便存储和检索图像文件。一切都指向blobstore,除了一个:隐私和安全。

在数据存储区中,我的用户的照片是私密的:我可以完全控制谁获得blob。但是,在blobstore中,任何知道该网址的人都可以想象访问我的用户照片吗?这是真的吗?

这句话应该让我安心,但现在还不清楚。所以有blob键的人仍然可以访问这些照片吗? (来自Store Photos in Blobstore or as Blobs in Datastore - Which is better/more efficient /cheaper?

  

从Blobstore中提供值的方式是接受请求   到应用程序,然后使用X-AppEngine-BlobKey标头响应   键。 App Engine拦截传出的响应并替换正文   使用直接从服务流式传输的Blobstore值。因为   应用程序逻辑首先设置标题,应用程序可以实现   它想要的任何访问控制。没有默认的URL   在没有应用干预的情况下直接从Blobstore中输出值。

所有这一切都要问:对于广告投放管理图片哪个更私密,更安全,以及为什么:数据存储区或blobstore?或者,嘿,google-cloud-storage(我目前一无所知)

2 个答案:

答案 0 :(得分:2)

如果你使用google.appengine.api.images.get_serving_url,那么是,the url returned is public。但是,返回的url不能从blob的键中猜出,在调用get_serving_url之前,url也不存在。 (或者在调用delete_serving_url之后)。

如果您需要在blobstore you can write your own handlers中的数据之上进行访问控制,并在那里添加访问控制。

答案 1 :(得分:0)

BlobPropertyBlobStore一样私密且安全,全部取决于您提供请求的应用程序。您的应用程序可以在将内容发送给用户之前实施任何权限检查,因此,只要您自己提供所有图像并且不是故意创建公开可用的URL,我就看不出任何差异。

实际上,我甚至不会在BlobProperty中存储照片,因为这样数据最终会在数据库中而不是BlobStore中结束,并且在数据库中存储数据的成本要高得多。另一方面,BlobStore便宜又方便。