Blobstore和Google云存储(GCS)上的许多问题和答案都有两到三年的历史,而这些年来情况发生了巨大变化。 GCS不再是独立服务。现在是{Apper Engine(GAE)integrated。
谷歌似乎如此努力地推动GCS,例如,Blobstore is deprecated
此处用于将文件写入Blobstore的Files API功能已经完成 已弃用,并将在将来的某个时间删除 支持将文件写入Google云端存储并使用Blobstore 为他们服务。
我认为现在是切换到GCS的时候了。
例如,www.example.com
是基于GAE构建的网站,而example.jpg
是存储在GCS上的图片,我想使用网址http://www.example.com/images/example.jpg
以前这是不可能的,但现在可以归功于integration。
我发现了这个:
https://developers.google.com/appengine/docs/python/googlecloudstorageclient/ 表示:
当Blobstore API与Images API一起使用时,您会得到一个 提供图像的强大方式,因为您可以直接提供图像 来自GCS,绕过App Engine应用程序,节省了实例小时 成本。
我知道如何'绕过App Engine应用。有没有关于如何在使用Blobstore API和Images API提供图像时绕过GAE的示例?
答案 0 :(得分:3)
说明在这里:https://developers.google.com/appengine/docs/python/images/functions#Image_get_serving_url
从Google云端存储中托管的图片开始。
首先,使用Blobstore API的create_gs_key()函数为GCS图像对象生成blob键。然后,将该blob键传递给Image API的get_serving_url()函数。
Image API会为您提供一个特殊的网址,可以跳过您的应用引擎应用并直接提供图片。
答案 1 :(得分:2)
你现在根本不需要使用BlobStore。以下内容将用于获取用于提供存储在GCS中的图像的图像API URL:
from google.appengine.api import images
images.get_serving_url(None, filename='/gs/<bucket>/<object>'))
答案 2 :(得分:0)
如果您使用www作为GAE Cname,那么从'www'提供图像并不是一个好主意,为了提供图像,您可以创建一个新的子域。在我们的例子中,我们使用cdn.example.com,我们我们的图像就像http://cdn.example.com/images/example.jpg
一样我们如何做到。
创建一个名为cdn.example.com的GCS存储桶,并将您的图像放在/ images路径下。
指定您的索引和404页面,这样会很好。
更多关于此https://cloud.google.com/storage/docs/website-configuration?hl=en