在应用程序引擎中,我可以使用应用程序的默认存储桶来提供诸如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))
更新,我发现此功能可使用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的代码。
该代码可以在这里找到。