首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >App Engine向关联的云存储存储桶写入权限被拒绝

App Engine向关联的云存储存储桶写入权限被拒绝
EN

Stack Overflow用户
提问于 2014-10-16 20:30:11
回答 1查看 821关注 0票数 2

我们有一个在App Engine上运行的项目,并在云存储上创建文件。这两者作为同一个云平台项目的一部分连接在一起。

在App Engine中,我们有一个"Google API控制台项目编号“,在云控制台->凭证中,该项目编号列在”客户端ID“(1...........apps.googleusercontent.com)和”电子邮件地址“(1..........@developer.gserviceaccount.com)下面。

每天早上,我们都会有一些cron作业将文件上传到云存储存储桶中。自2013年9月以来,这已经完美地工作了,但截至今天上午(2014年10月16日),我们收到了来自云存储的“许可被拒绝”错误。

我们使用的是cloudstorage客户端库,它会引发cloudstorage.ForbiddenError。以下是日志和异常输出:

代码语言:javascript
运行
复制
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说一切都很好。

EN

回答 1

Stack Overflow用户

发布于 2014-10-16 20:59:12

正如@tx802建议的那样,我仔细检查了存储桶ACL。

代码语言:javascript
运行
复制
$ gsutil getacl gs://bucket

    <Entry>
        <Scope type="UserByEmail">
            <EmailAddress>1[..........]@developer.gserviceaccount.com</EmailAddress>
        </Scope>
        <Permission>FULL_CONTROL</Permission>
    </Entry>

我查看了App Engine应用程序设置,看到服务帐户实际上是appname@appspot.gserviceaccount.com,所以我给了该帐户完全的控制权:

代码语言:javascript
运行
复制
$ gsutil chacl -u appname@appspot.gserviceaccount.com:FC gs://bucket

我不确定昨天的cron运行后发生了什么变化,但现在它成功了。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26404508

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档