【发布时间】:2014-12-11 19:49:59
【问题描述】:
我们有一个在 App Engine 上运行并在 Cloud Storage 上创建文件的项目。两者连接为同一个云平台项目的一部分。
在 App Engine 中,我们有一个“Google API 控制台项目编号”,在 Cloud Console -> Credentials 中,我们在“客户端 ID”下列出了该项目编号 (1[.......]. apps.googleusercontent.com) 和“电子邮件地址”(1[..........]@developer.gserviceaccount.com)。
每天早上,我们都有一些将文件上传到 Cloud Storage 存储桶的 cron 作业。这自 2013 年 9 月以来一直运行良好,但截至今天上午(2014 年 10 月 16 日),我们从 Cloud Storage 收到“权限被拒绝”错误。
我们正在使用 cloudstorage 客户端库,它引发了 cloudstorage.ForbiddenError。这是日志和异常输出:
Expect status [201] from Google Storage. But got status 403.
Path: u'/bucketname/icon_20141016.png'.
Request headers: {'x-goog-resumable': 'start', 'x-goog-api-version': '2', 'content-type': 'image/png', 'accept-encoding': 'gzip, *'}.
Response headers: {'alternate-protocol': '443:quic,p=0.01', 'content-length': '151', 'via': 'HTTP/1.1 GWA', 'x-google-cache-control': 'remote-fetch', 'vary': 'Origin', 'server': 'UploadServer ("Built on Oct 9 2014 15:35:27 (1412894127)")', 'date': 'Thu, 16 Oct 2014 11:56:10 GMT', 'content-type': 'application/xml; charset=UTF-8'}.
Extra info: None.
由于我们在两个服务之间使用云平台连接,我觉得我只能在我的生产 App Engine 实例上诊断问题。我宁愿不部署新版本并冒着破坏生产服务器的风险。这似乎也是今天早上的云存储问题,但我发现 the only status page 说一切正常。
【问题讨论】:
-
bucket上的ACL有没有可能发生了变化?您可以通过
gsutil getacl gs://<bucket-name>查看。 -
@tx802 某处发生了变化……不知道在哪里,但我已经解决了。将发布带有详细信息的答案。
标签: google-app-engine google-cloud-storage