时间:2021-07-01 10:21:17 帮助过:21人阅读
只能用户自己和网站后台能访问到图片,其他用户则不能访问(其他用户就算有图片img的src也不能够访问到图片)。
存本地空间估计不够用、存第三方可靠吗?有什么成熟的解决方案?
如何存储图片比如身份证,比较合适?
只能用户自己和网站后台能访问到图片,其他用户则不能访问(其他用户就算有图片img的src也不能够访问到图片)。
存本地空间估计不够用、存第三方可靠吗?有什么成熟的解决方案?
已经解决,看了upyun的接口,发现可以利用token防盗链的方式。
因为这种方式访问img需要带上_upt参数才行,
于是我们对于用户要真正能够访问图片mybucket.upaiyun.com/
判断当前登录的用户是否有权限访问
有权限访问,那么生成_upt参数(_upt参数是根据私有的token、限制在未来几分钟内才能被访问到的etime、以及文件url,这3个参数产生的)
把这个_upt追加到图片url里得到 mybucket.upaiyun.com/
这样用户才能访问到图片,用户每次访问图片必须获得_upt参数,而_upt的获取则必须通过我们自己服务器的鉴权才行,而且_upt是有时效性的,超过我们规定的时间用户必须重新获取_upt才行。
upyun的文档
看下是否有基于ak + sk + 时间戳生成token的方案(使用生成的token在有效期内可以访问资源)。
1.保存的图片名称不要有规律可循.
比如可以 md5 当前上传图片的时间加上 n 位的随机数,生成的值用来做图片名称.
2.图片可以放到第三方cdn 上
比如七牛, ucloud ,速度和服务还是比较靠谱的.
你说的情况应该对图片文件进行对称加密,例如使用AES,而且对每个用户使用特定方式生成的密钥。因为图片应该不会经常使用,使用时在临时解密一下即可
现在文件存储的话,交给成熟的服务提供者(比如七牛什么的)来处理更方便,安全什么的他们帮你处理了,你只需要把文件托管上去,然后记录一下三方服务返回的信息(图片外链和一些其他信息)即可。关于访问权限的话,需要自己在程序逻辑层来作判断了。