如何提供Google Cloud Storage图片?

发布于 2021-01-29 15:05:04

我想google.appengine.ext.blobstoregoogle.appengine.api.images到App
Engine的工作之外。这些模块是否需要App Engine才能正常运行?我想在Google Cloud
Storage上为图像创建公共的但不可猜测的URL,并通过Django提供它们。

我了解到这是通过google.appengine.ext.blobstore.create_gs_key()和完成的google.appengine.api.images.get_serving_url()。这是我到目前为止所拥有的:

from google.appengine.api import images
from google.appengine.ext import blobstore

bucketname = 'mybucket'

gcs_object_name = '/gs/mybucket/vincent-van-gogh/the-starry-night.jpg'
blob_key = blobstore.create_gs_key(gcs_object_name)
image_url = images.get_serving_url(blob_key)

并且image_url应该是我的图像的公共但不可猜测的URL。如果我运行此代码,则错误为

AssertionError: No api proxy found for service "blobstore"

这表明blobstore需要代理(也称为App Engine)才能发挥其魔力。App Engine模块可以在App
Engine之外运行吗?文档说,以上是提供图像的有效方法,因为我可以为每个图像生成一个URL,还可以动态调整图像的大小。

这个策略行得通吗?还是有更好的方法通过Django从Google Cloud Storage提供图像?

关注者
0
被浏览
71
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    Blobstore和图像API仅在App Engine运行时环境中可用。要在计算引擎中运行它们,您可以:

    • 受管VM中运行它们(GCE上的GAE运行时环境)

    • 使用GAE API仿真器(例如AppScale)在您自己的基础架构或GCE上运行它们

    • 改用公共API(例如Google Cloud Storage)

    现在,某些App
    Engine服务(例如Datastore)还公开了可以从GCE使用的公共API。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看