OSS如何结合业务进行鉴权?

在现在网站中,使用OSS存储文件、图片。然后访问的时候,直接访问OSS中的内容。
现在发现很多网站没有对OSS的访问进行鉴权,包括CSDN。
例如我在CSDN把文章改为私密文章,但是通过OSS地址,依然可以直接访问到图片内容。
甚至可以通过暴力遍历文件ID获取OSS中的内容,暴力获取所有不公开文章的图片。

我有有考虑过的方法

一、方法一

  1. 资源都经过鉴权服务。 web --> 鉴权服务 --> oss。但是这样等于文件流量都经过一次转发,流量翻倍。

二、方法二
在oss进行鉴权

  1. web --> 鉴权服务获取一次性token,web带一次性token 访问 oss服务。
  2. web --> oss --> 鉴权服务。 web访问oss时,oss处拦截,调用鉴权服务鉴权。

但是这两种方法都需要修改OSS服务。如果OSS服务商不提供,或者如果使用MINIO这种自己搭建的OSS,需要进行开发。不是十分友好。

三、方法三

  1. 公开的资源放一个oss路径。 不公开的资源放一个oss路径。
  2. 如果在 公开和私密之间转换的时候就需要遍历内容,修改内容中的资源路径。
  3. 私密的资源依然要走上面的两个方法进行鉴权。

另外如果使用图库功能,一个图片,可能在不同的文章中使用,那么对于图片的访问权限控制的维护变得更加的复杂。需要知道这个图片用在哪里,访问的用户是否对其中一个调用地方拥有权限。

请问各位是如何处理的?请问有没有比较优雅的解决方案?

OSS提供方应该只有简单的访问鉴权,需要做做会更好的鉴权,
肯定要从应用层去做且合理限制访问频次灰小猿 ,OSS不直接对外,通过应用对外。

OSS提供方应该只有简单的访问鉴权,需要做做会更好的鉴权,
肯定要从应用层去做且合理限制访问频次灰小猿 ,OSS不直接对外,通过应用对外。