【发布时间】:2018-05-12 11:51:19
【问题描述】:
我希望能够从我的 App Engine 应用程序访问 Cloud Storage 存储桶中的文件,而无需将对象或存储桶本身设为公开可读。虽然我知道有很多选项允许通过身份验证访问存储桶对象(客户端库、签名 url 等),但复杂的因素是我希望能够访问具有路径的文件类似于有问题的存储桶的文件夹结构。
例如,如果我让我的存储桶公开可读,我可以使用公共链接访问对象:https://storage.googleapis.com/MY_BUCKET/FOLDER_IN_MY_BUCKET/FILE_IN_FOLER.txt。此 url 模仿存储桶的内部文件夹结构。但是,如果存储桶不是公开可读的,则似乎没有可比较的 url。我的 App Engine App 服务帐户已添加为我需要的存储桶的存储管理员,但我不确定是否有可用于访问存储桶对象的 url。对象的 mediaLink 将不起作用,因为生成信息附加到末尾,并且 selfLink 导致 404 错误。
需要这样的 url 是因为存储桶包含数千个对象。在我的例子中,使用客户端库将它们下载到 App Engine 的持久存储类型中违背了使用云存储的目的。在发出请求时获取所有这些签名的 url 会很耗时,然后我必须在某个地方管理数千个签名的 url。
有没有办法从云存储桶中读取一个可预测的 url,比如公共 url,同时仍然对请求进行身份验证?
【问题讨论】:
标签: google-app-engine google-cloud-platform google-cloud-storage