小编典典

如何使用App Engine SDK服务cloudstorage文件

python

在应用程序引擎中,我可以使用应用程序的默认存储桶来提供诸如pdf之类的cloudstorage文件:

http://storage.googleapis.com/<appid>.appspot.com/<file_name>

但是,如何在不使用blob_key的情况下在SDK中提供本地cloudtorage文件?

我这样写默认存储桶:

gcs_file_name = '/%s/%s' % (app_identity.get_default_gcs_bucket_name(), file_name)
with gcs.open(gcs_file_name, 'w') as f:
    f.write(data)

SDK中默认存储桶的名称=’app_default_bucket’

在SDK数据存储区中,我有一个种类: GsFileInfo 显示:文件名:/app_default_bucket/example.pdf

更新和解决方法:您可以获取非图像文件(例如css,js和pdf)的服务网址。

gs_file = '/gs/%s/%s/%s' % (app_identity.get_default_gcs_bucket_name(), folder, filename)
serving_url = images.get_serving_url(blobstore.create_gs_key(gs_file))

阅读 145

收藏
2020-12-20

共1个答案

小编典典

更新,我发现此功能可使用SDK来提供cloudtorage文件:

此功能尚未记录。

http://localhost:8080/_ah/gcs/app_default_bucket/filename

这意味着我们不需要img服务网址来提供非图片,如下所示!

为了为default_bucket中的图像,css,js和pdf之类的cloudtorage文件创建e服务url,我将以下代码用于测试(SDK)和GAE生产:

重要提示:images.get_serving_url()也可用于SDK中的非图片!

在SDK中,您还需要Blobstore读取Blob并为cloudstorage对象创建服务网址。

我还添加了用于在SDK和GAE产品中读取,写入和上传cloudstorage blob的代码。

该代码可以在这里找到。

2020-12-20