7

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

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

这是一个应该让我安心的报价,但仍然不清楚。所以任何拥有 blob 密钥的人仍然可以访问照片吗?(来自Blobstore 中的 Store Photos 或 Datastore 中的 Blob - 哪个更好/更高效/更便宜?

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

所有这一切都是为了问:对于传输图像,哪个更私密、更安全,为什么:数据存储区还是 blob 存储区?或者,嘿,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 之后)。

如果您需要对 blobstore 中的数据进行访问控制,您可以编写自己的处理程序并在那里添加访问控制。

于 2013-03-21T17:13:04.180 回答
0

BlobProperty与 一样私密和安全BlobStore,一切都取决于您为请求提供服务的应用程序。您的应用程序可以在将内容发送给用户之前实施任何权限检查,因此只要您自己提供所有图像并且不故意创建公开可用的 URL,我看不出有任何区别。

实际上,我什至不会考虑BlobPropertyBlobStore. BlobStore,另一方面,便宜又方便。

于 2013-03-22T00:00:25.000 回答