取消选中后,Google云端存储公共链接不会失效

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了取消选中后,Google云端存储公共链接不会失效相关的知识,希望对你有一定的参考价值。

我正在使用Google云端存储来上传图片。我现在正在从云控制台进行测试。在我上传图片后,如果我检查公开共享复选框以获取公共链接,我(显然)得到一个可公开访问的网址,即:https://storage.googleapis.com/bucket_name/pictureName

然后,如果我取消选中“公开共享”复选框,则会发出请求

Request URL:https://clients6.google.com/storage/v1_internal/b/bucketName/o/pictureName.jpg/acl/allUsers?key=AIzaSyCI-yuie5UVOi0DjtiCwWBwQ1djkiuo1g
Request Method:DELETE

该请求进展顺利,但公共网址仍可公开访问。我认为它有效一段时间,但一小时后仍然可用。那么,删除公共网址的正确方法是什么?我公开后如何限制对存储文件的访问?

答案

请参阅cache control and consistency上的文档。特别是:

注意:如果未指定缓存生存期,则可以缓存最多60分钟的可公开访问的对象。

所以我猜这是按预期工作的,你的对象是缓存的。你试过等一会儿吗?

另一答案

Sharing your data publicly中,它表明有两种方法可以公开停止共享对象。

  1. 如您所述,取消选中“公共共享”下的复选框。
  2. 编辑对象权限并删除ID为allUsers的条目。

您仍然能够公开访问该对象的原因确实是因为@jterrace提到的缓存。引用的Cache control and consistency文章解释了这种最终一致性的影响。

可以通过公开共享对象并在之后立即取消共享来测试此行为。在大多数情况下,对象将在缓存持续时间内公开访问。可以通过指定Cache-Control标头(例如max-age)来缩短此持续时间。

另一答案

当你分享公共网址就像https://storage.googleapis.com/bucket_name/pictureName

如果您删除该文件或取消选中“公开共享”复选框,则该文件最长可达60分钟,这是Google云中的默认缓存时间,

要避免问题需要传递像https://storage.googleapis.com/bucket_name/pictureName?avoidCache=1这样的Query参数

每次在查询字符串中传递随机数。

以上是关于取消选中后,Google云端存储公共链接不会失效的主要内容,如果未能解决你的问题,请参考以下文章

链接到Google云端存储映像是否算作操作?

gridview中的第一项在AdapterView.OnItemClickListener中不会更改

Google云端硬盘文档编辑器显示了其他链接的应用,例如日历和其他Google产品导航。如何隐藏完成的投递箱?

复选框checked 选中后不显示打钩

将文件从 Google Cloud Storage 添加到云端硬盘

使用VBA上传到Google云端硬盘?