请教一下大伙们对象存储的问题

查看 90|回复 8
作者:Dongxiaohao   
之前用阿里的 OSS ,用 STS 对资源链接进行签名。但是我在文档中只发现可以设置链接时效性的参数。
我的需求是,这个链接只能下载指定次数(自己设置),超过指定次数之后,就无法打开下载了。
在阿里的 oss 文档上貌似没有看见相关的案例。
这样操作主要的作用就是防止资源被盗刷,如果 oss 没有这样的操作,其他的 bucket 有这种操作吗?

OSS, 链接, 阿里, 文档

standchan   
直接提工单问,方便快捷官方
Dongxiaohao
OP
  
@standchan #1 好家伙,没意识到,这就去问一下
zzboat0422   
部分云厂商的对象存储是有防盗链功能的,不知道阿里云有没有
Dongxiaohao
OP
  
@zzboat0422 #3 防盗链不能实现限制访问频次的需求吧
Dongxiaohao
OP
  
问了一下 OSS 和 COS 的客服,都不能对访问次数限制,没办法了
google2020   
印象中没这功能,因为没法计算,比如多线程这算一次还是多次呢,断点续传算几次呢。
防被刷记得配合 CDN 使用,CDN 流量便宜很多,也可以用边缘脚本鉴权和限速。
em70   
gpt4 的回答:
阿里云的对象存储服务( OSS )确实提供了生成带签名的 URL 的功能,这些 URL 可以限制访问时间,但根据我最新的了解,阿里云 OSS 本身并不直接支持限制 URL 的下载次数。换句话说,OSS 可以限制一个链接在某个时间点之后不再有效,但不能限制该链接被访问的次数。
如果您的需求是限制资源链接的下载次数以防止资源被盗刷,您可能需要考虑一些替代方案:
中间件控制:您可以设置一个中间件(如服务器端的应用程序),用于管理和分发 OSS 资源链接。这个中间件可以跟踪每个链接的下载次数,并在达到预定次数后停止分发该链接。
数据库记录:您可以在数据库中记录每个链接的下载次数,并在请求时检查次数。如果下载次数超过限制,则拒绝进一步的下载请求。
其他云存储服务:如果阿里云 OSS 不满足您的特定需求,您可以考虑其他云存储服务,如 Amazon S3 或 Google Cloud Storage ,看看它们是否提供了更符合您需求的功能。
第三方解决方案:也可以考虑使用第三方服务或工具,这些服务或工具可能提供了更灵活的访问控制选项,包括基于下载次数的限制。
总之,虽然 OSS 本身可能不支持基于下载次数的限制,但通过一些创造性的解决方案,您仍然可以实现类似的功能。
kangjm   
Presigned url 没这功能 https://stackoverflow.com/questions/54781941/how-to-restrict-number-of-hits-to-s3-bucket-via-presigned-url
你可以连个 redis 来记录访问次数,再在后端做个验证
您需要登录后才可以回帖 登录 | 立即注册

返回顶部