Google Cloud Storage public link 取消勾选后不会失效
Google Cloud Storage public link does not become invalid when unchecking
我正在使用 Google 云存储上传图片。我现在正在从云控制台对其进行测试。
在我上传图片后,如果我选中共享 publicly 复选框以获得 public link,我(显然)会得到一个 publicly 可访问 url,即: 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
请求进行得很顺利,但是 public url 仍然 public 可以访问。我以为是一段时间有效,但是一小时后还是可用的。
那么,删除 public url 的正确方法是什么?如何在创建后限制对存储文件的访问 public?
请参阅 cache control and consistency 上的文档。特别是:
Note: If you do not specify a cache lifetime, a publicly accessible
object can be cached for up to 60 minutes.
所以我猜这是按预期工作的,您的对象已缓存。你试过再等一会儿吗?
在 Sharing your data publicly 中,显示有 2 种方法可以停止公开共享 object。
- 取消选中 公开共享 下的复选框,正如您已经提到的那样。
- 编辑 object 权限并删除 ID 为
allUsers
的条目。
您仍然能够公开访问 object 的原因确实是因为 @jterrace 提到的缓存。引用的 Cache control and consistency 文章解释了这种最终一致性的影响。
可以通过公开分享 object 并在之后立即取消分享来测试此行为。在大多数情况下,object 将在缓存持续时间内公开访问。可以通过指定 Cache-Control
headers 来缩短此持续时间,例如 max-age
.
当您公开分享 Url 就像 https://storage.googleapis.com/bucket_name/pictureName。
如果您删除文件或取消选中“公开共享”复选框
它最多可用 60 分钟,这是 Google 云中的默认缓存时间,
为了避免问题需要传递查询参数,如
https://storage.googleapis.com/bucket_name/pictureName?avoidCache=1
每次在查询字符串中传递随机数。
我正在使用 Google 云存储上传图片。我现在正在从云控制台对其进行测试。 在我上传图片后,如果我选中共享 publicly 复选框以获得 public link,我(显然)会得到一个 publicly 可访问 url,即: 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
请求进行得很顺利,但是 public url 仍然 public 可以访问。我以为是一段时间有效,但是一小时后还是可用的。 那么,删除 public url 的正确方法是什么?如何在创建后限制对存储文件的访问 public?
请参阅 cache control and consistency 上的文档。特别是:
Note: If you do not specify a cache lifetime, a publicly accessible object can be cached for up to 60 minutes.
所以我猜这是按预期工作的,您的对象已缓存。你试过再等一会儿吗?
在 Sharing your data publicly 中,显示有 2 种方法可以停止公开共享 object。
- 取消选中 公开共享 下的复选框,正如您已经提到的那样。
- 编辑 object 权限并删除 ID 为
allUsers
的条目。
您仍然能够公开访问 object 的原因确实是因为 @jterrace 提到的缓存。引用的 Cache control and consistency 文章解释了这种最终一致性的影响。
可以通过公开分享 object 并在之后立即取消分享来测试此行为。在大多数情况下,object 将在缓存持续时间内公开访问。可以通过指定 Cache-Control
headers 来缩短此持续时间,例如 max-age
.
当您公开分享 Url 就像 https://storage.googleapis.com/bucket_name/pictureName。
如果您删除文件或取消选中“公开共享”复选框 它最多可用 60 分钟,这是 Google 云中的默认缓存时间,
为了避免问题需要传递查询参数,如 https://storage.googleapis.com/bucket_name/pictureName?avoidCache=1
每次在查询字符串中传递随机数。