默认GCS存储桶名称

时间:2014-10-16 01:44:35

标签: google-app-engine google-cloud-storage

根据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

由于我将此应用部署到多个网站,因此我想使用方法调用。反正有没有让它返回真正的默认存储桶名称?

2 个答案:

答案 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)时将返回的存储桶。

在google文档中找到了- https://cloud.google.com/appengine/docs/standard/python/googlecloudstorageclient/setting-up-cloud-storage#activating_a_cloud_storage_bucket