之前用阿里的 OSS ,用 STS 对资源链接进行签名。但是我在文档中只发现可以设置链接时效性的参数。 我的需求是,这个链接只能下载指定次数(自己设置),超过指定次数之后,就无法打开下载了。 在阿里的 oss 文档上貌似没有看见相关的案例。 这样操作主要的作用就是防止资源被盗刷,如果 oss 没有这样的操作,其他的 bucket 有这种操作吗? OSS, 链接, 阿里, 文档
gpt4 的回答: 阿里云的对象存储服务( OSS )确实提供了生成带签名的 URL 的功能,这些 URL 可以限制访问时间,但根据我最新的了解,阿里云 OSS 本身并不直接支持限制 URL 的下载次数。换句话说,OSS 可以限制一个链接在某个时间点之后不再有效,但不能限制该链接被访问的次数。 如果您的需求是限制资源链接的下载次数以防止资源被盗刷,您可能需要考虑一些替代方案: 中间件控制:您可以设置一个中间件(如服务器端的应用程序),用于管理和分发 OSS 资源链接。这个中间件可以跟踪每个链接的下载次数,并在达到预定次数后停止分发该链接。 数据库记录:您可以在数据库中记录每个链接的下载次数,并在请求时检查次数。如果下载次数超过限制,则拒绝进一步的下载请求。 其他云存储服务:如果阿里云 OSS 不满足您的特定需求,您可以考虑其他云存储服务,如 Amazon S3 或 Google Cloud Storage ,看看它们是否提供了更符合您需求的功能。 第三方解决方案:也可以考虑使用第三方服务或工具,这些服务或工具可能提供了更灵活的访问控制选项,包括基于下载次数的限制。 总之,虽然 OSS 本身可能不支持基于下载次数的限制,但通过一些创造性的解决方案,您仍然可以实现类似的功能。
Presigned url 没这功能 https://stackoverflow.com/questions/54781941/how-to-restrict-number-of-hits-to-s3-bucket-via-presigned-url 你可以连个 redis 来记录访问次数,再在后端做个验证