【问题标题】:Google App Engine : Read from Google Cloud StorageGoogle App Engine:从 Google Cloud Storage 读取
【发布时间】:2012-05-14 20:57:29
【问题描述】:

我在 Google App Engine 上有一个 Flex/Java 应用程序,我想要的只是使用 Flex 中的 URLRequest 从 Google Cloud Storage 加载大图像。我确信这很简单,但我无法让它工作。我将使用 Google API 控制台手动上传图像,因此我不需要从应用程序中编写任何内容。图片不能公开。

我不能 100% 确定如何访问该文件,所以这可能是问题所在。我试过这些:

  • "/gs/mybucket/myimage.jpg"未找到
  • "/mybucket/myimage.jpg"未找到
  • “http://commondatastorage.googleapis.com/mybucket/myimage.jpg”拒绝

我在具有 Can View 权限的 Google API 控制台的“团队”选项卡中添加了 myappid@appspot.gserviceaccount.com,并且我使用 GSUtil 在两者上获取和设置 ACL em>mybucket 和 myimage.jpgmyappid@appspot.gserviceaccount.com 添加 READ 权限,但这并没有帮助。

我做错了什么?

【问题讨论】:

  • 您说“图片不能公开”——那么 flex 应用程序将如何访问它们?
  • Flex 应用程序应该对它们具有 READ 权限,但目前还不能很好地工作。 Google Cloud Storage 可让您控制谁可以访问或不可以访问您的文件。在这种情况下,我只需要 myappid@appspot.gserviceaccount.com 但没有其他人能够读取这些文件。在这里描述,我只是看不到我错过了什么:https://developers.google.com/storage/docs/accesscontrol
  • 如果用户可以下载 flex 应用程序,并且 flex 应用程序应该能够下载图像,那么您的图像公开的 - 没有办法解决这个问题。
  • 嗯,Flex 应用程序内部有一个密码保护,如果应用程序不在服务器上,它就不起作用,所以我想这应该是安全的。我只是不希望使用它们的实际 URL 或在 Google 等上编入索引的图像可以访问这些图像。
  • 您正在将应用程序发送给用户 - 他们很容易确定正在获取哪些图像以及如何获取,或者从 flex 应用程序中提取密码。为什么要向用户显示图像,同时试图阻止他们自己下载?

标签: java apache-flex google-app-engine google-cloud-storage


【解决方案1】:

我不太确定 flex 是如何工作的,或者它是如何尝试访问 blob 的。

但是,如果您想使用 Google Storage 对象的内容响应 http 请求,则可以使用 serve 方法。

https://developers.google.com/appengine/docs/java/blobstore/overview#Serving_a_Blob

【讨论】:

  • 是的,Flex 执行一个基本的 HTTP 请求。服务方法不是特定于 BlobStore 的吗? Google Cloud Storage 为我提供了文件的路径,但我不知道您的链接示例中的密钥?
  • 使用 createGeBlobKey 为 google 存储文件创建密钥。 developers.google.com/appengine/docs/java/javadoc/com/google/…
  • 哦!这是我不知道的。第一次尝试时,一切都像魅力一样!非常感谢!
【解决方案2】:

您是否使用 OAuth 令牌授权 URLRequest 调用?如果不是,那么即使请求是从应用程序引擎应用程序发起的,它也会像未经身份验证的公开读取一样查看 Google Cloud Storage。我不知道 flex 是否有跟踪选项,但如果有办法检查请求详细信息,我会检查您是否设置了正确的身份验证。

如果事实证明很难让 flex 与 OAuth 很好地配合使用,您还可以使用签名 URL(也称为查询字符串身份验证 URL)。这使您能够创建一个带有特殊签名的 URL,该签名隐含地传达您的授权,但只有拥有该链接的人才能访问该对象。可以将对象的 ACL 设置为禁止公共访问,但您的签名 URL 将能够读取该对象。如果您愿意,您还可以对签名 URL 进行时间限制。 Here's the documentation 了解如何使用此技术。

【讨论】:

    猜你喜欢
    • 2018-07-22
    • 2013-01-26
    • 1970-01-01
    • 2021-11-14
    • 1970-01-01
    • 2015-09-26
    • 1970-01-01
    • 2015-07-07
    • 1970-01-01
    相关资源
    最近更新 更多