【发布时间】: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.jpg 为 myappid@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