在谷歌云存储中使用带有签名URL的版本控制



在对象上指定"生成"(版本号)时,我很难签署谷歌云存储(GCS)的GET请求。在不生成的情况下对URL进行签名就像一种魅力,GET请求也很好。但是,当我为路径准备#生成时,当试图获取签名的URL时,GCS服务器总是返回"拒绝访问"。

例如,对这个URL路径进行签名很好:

https://storage.googleapis.com/BUCKET/OBJECT

签署此URL路径会使我访问被拒绝:

https://storage.googleapis.com/BUCKET/OBJECT#1360887697105000

请注意,为了简洁和隐私,我省略了带有Signature、Expires和GoogleAccessId参数的实际签名URL。还要注意,我还使用gsutil验证了bucket、对象和生成是否正确。

GCS是否允许通过"生成"编号对特定对象版本进行签名URL访问?访问特定版本时,URL签名过程是否不同?

您使用的URL是gsutil-兼容的,但XML API要求您用查询参数表示生成(看起来像storage.googleapis.com/BUCKET/OBJECT?generation=1360887697105000)。

这里的文档可供参考:developers.com/storage/docs/reference headers#generation

最新更新