【问题标题】:Google Cloud Storage authentication for App EngineApp Engine 的 Google Cloud Storage 身份验证
【发布时间】:2011-12-25 17:23:51
【问题描述】:

我们希望开始使用 Google Cloud Storage 作为用户上传文件的持久存储。很遗憾,我无法将 App Identity (application-id@appspot.gserviceaccount.com) 添加到我们的“团队”,因为我们的团队基于 Google Apps 的域,它不允许任何不在我们域中的电子邮件地址加入团队。

在这种情况下,是否有推荐的方法来验证 App Engine 实例?

【问题讨论】:

  • 出于好奇,您从 Cloud Storage 中获取哪些无法通过 App Engine + Blobstore 访问的功能?
  • 我们希望将数据暴露给用户下载,而 Cloud Storage 比通过 appengine 提供服务更快更便宜。基本上,我们将其用作易于失效的 CDN。
  • 明白了。我们已经取得了一些好运(性能方面),通过我们的 blobstore 响应发送回缓存标头(此后 Google 的前端服务器似乎可以快速处理大多数请求)。容易失效的部分是另一回事。
  • 你让它工作了吗?请分享你是如何做到的。
  • @Yasser,查看已接受的答案。

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


【解决方案1】:

使用 gmail 帐户创建新团队。添加您的所有团队成员(包括应用程序),并从团队中删除 gmail 帐户。

是的,这是一个可怕的黑客攻击。对此感到抱歉。

【讨论】:

    【解决方案2】:

    您也可以通过使用GSUtil 明确授予对您创建的存储桶的写入权限来解决此问题,以便您的服务帐户“application-id@appspot.gserviceaccount.com”拥有对该存储桶的足够访问权限。默认情况下,其他人无法访问您的存储桶。

    您需要使用 GSUtil 来修改存储桶上的 ACL:

    • 检索存储桶的 ACL:gsutil getacl gs://mybucket > acl.txt
    • 对 acl.txt 进行更改,例如为用户“application-id@appspot.gserviceaccount.com”添加额外的授权以拥有存储桶的写入权限,请参阅 ACL 文档。如何做到这一点:http://code.google.com/apis/storage/docs/accesscontrol.html#applyacls 具体来说,它可能看起来像这样添加到您下载的 acl.txt:

      <Entry>
        <Scope type="UserByEmail">
          <EmailAddress>application-id@appspot.gserviceaccount.com</EmailAddress> 
          <Name>Service Account</Name> 
        </Scope> 
        <Permission>FULL_CONTROL</Permission> 
      </Entry>
      
    • 更新存储桶上的 ACL:gsutil setacl acl.txt gs://yourbucket

    希望这会有所帮助!

    【讨论】:

    • 你真的试过了吗,它有效吗?说明特别要求将权限添加到项目而不是存储桶:“将服务帐户作为项目编辑器添加到存储桶所属的 Google API 控制台项目”
    • 这对我有用。我从 App Engine 控制台的“应用程序设置”下获得了服务帐户名称。
    【解决方案3】:

    要使用 Google Cloud Storage,您可以通过此链接 https://developers.google.com/storage/ 创建新帐户然后使用。

    【讨论】:

    • 这不是这里要问的
    猜你喜欢
    • 1970-01-01
    • 2014-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多