根据https://cloud.google.com/appengine/docs/python/googlecloudstorageclient/activate:
默认存储桶名称通常为< app_id> .appspot.com 替换为您的应用ID。您可以在中找到存储桶名称 App Engine管理控制台应用程序设置页面,位于标签下方 谷歌云存储桶。或者,您可以使用该应用程序 标识get_default_gcs_bucket_name()方法以查找名称 编程。
当我查看Google Cloud Storage Bucket标签时,我看到<app-id>.appspot.com
,其中<app-id>
是我的应用程序的标识符。这似乎与上段中的前两句相符。
但是,当我按照最后一句中的建议致电get_default_gcs_bucket_name()
时,返回值为app_default_bucket
。
由于我将此应用部署到多个网站,因此我想使用方法调用。反正有没有让它返回真正的默认存储桶名称?
答案 0 :(得分:3)
在开发环境中,大多数服务都被stub替换。将应用程序部署到GAE后,get_default_gcs_bucket_name将返回<app_id>.appspot.com
。
我使用以下应用验证了该行为:
import webapp2
from google.appengine.api import app_identity
class MainPage(webapp2.RequestHandler):
def get(self):
self.response.headers['Content-Type'] = 'text/plain'
self.response.write(app_identity.get_default_gcs_bucket_name())
application = webapp2.WSGIApplication([
('/', MainPage),
], debug=True)
答案 1 :(得分:0)
您可以将客户端库与开发服务器一起使用。但是,由于没有Cloud Storage的本地模拟,因此所有读取和写入文件的请求都必须通过Internet发送到实际的Cloud Storage存储桶。
要将客户端库与开发应用服务器一起使用:
激活云存储桶。
运行带有标志--default_gcs_bucket_name [BUCKET_NAME] 的dev_appserver.py,用您正在使用的Cloud Storage存储桶的名称替换[BUCKET_NAME]。
此标志控制应用程序调用file.DefaultBucketName(ctx)时将返回的存储桶。