我正在尝试从我的 Google App Engine Java 应用程序访问 Google Cloud Storage:
GcsService gcsService = GcsServiceFactory.createGcsService(RetryParams.getDefaultInstance());
GcsFilename writableFilename = new GcsFilename(Constants.CONTENT_BUCKET, "some-id");
GcsFileOptions options = new GcsFileOptions.Builder()
.mimeType("some-content-type")
.acl("private")
.addUserMetadata("x-goog-project-id", "some-id")
.build();
GcsOutputChannel writeChannel = gcsService.createOrReplace(writableFilename, options);
但是当我部署并测试它时,我收到
<?xml version='1.0' encoding='UTF-8'?><Error><Code>AccessDenied</Code><Message>Access denied.</Message><Details>keys-expressflow</Details></Error>
作为回应。因此,我在我的 Google API 控制台中检查了 ACL。现在开始怪癖:当我尝试通过我的 Google API 控制台的团队面板添加团队成员来授予对我的存储桶的访问权限时,我被重定向到我的 Google App Engine 管理控制台。
有人知道这里发生了什么吗?
更有趣的是:这是从昨天开始发生的,没有更改任何配置。谷歌是否改变了任何东西,其他人是否经历过这种行为?
更新
在使用 gsutil 设置 ACL 后,如https://developers.google.com/appengine/docs/python/googlestorage/中所述,问题仍然存在。但现在反应变了:
Service Unavailable
谷歌云存储目前面临一些技术问题?
这篇文章可能与 无法授予 Google App Engine 服务帐户访问 Google 云存储的权限有关
我将整个应用程序重新部署到美国的位置(Google App Engine App 和 Cloud Store Buckets)。你猜怎么着?现在它起作用了。
谷歌,解决这个问题!!!