我正在尝试从我的Google App Engine Java App访问Google云端存储:
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,如https://developers.google.com/appengine/docs/python/googlestorage/中所述相应地设置ACL后,问题仍然存在。但现在响应发生了变化:
Service Unavailable
目前面临谷歌云存储的一些技术问题?
这篇文章可能与某种方式有关 Unable to give Google App Engine Service Account access to Google Cloud Storage
我将整个应用程序重新部署到美国的位置(Google App Engine App和Cloud Store Buckets)。你猜怎么着?现在它有效。
谷歌,解决这个问题!!!