使用 S3、OSS 这一类对象存储,如果选择客户端 web 端直传。生成了临时 token 给了用户某个 bucket 的写入权限,怎么样防止用户提交同名文件覆盖 bucket 中已有的文件?
|
xeaglexDec 11, 2019 via Android
1
先请求再上传?
|
|
rrfengDec 11, 2019 via Android
2
上传有这个选项的。仔细查一下文档。
|
|
malusamaDec 11, 2019
3
你生成 uuid 附在用户的文件名后面嘛
|
|
EileenJDec 11, 2019 via Android
4
可以通过文件名获取元数据信息
|
|
5
阿里云不行。 要么用 url 签名。
要么,把时间参数作为目录的一部分,每隔一段时间换一个目录。 |
|
huijieweiDec 11, 2019
6
${filename} 用随机字符串就是了
|
|
opengpsDec 11, 2019 via Android
7
先获取一下,看看返回值,然后再上传。
不过我更建议本地维护一个文件列表数据库,只依赖厂商的接口用起来毕竟受一定约束了 |
|
8
|
|
9
oss token 包含的路径授权是可以包含文件名的 只要限定到文件名之后 最多只能重复上传覆盖自己之前上传的文件
|
|
11
|
|
rrfengDec 12, 2019 via Android
13
你所谓的恶意请求是什么?
|
|
15
sts token 授权单个文件,文件名指定 GUID
|
|
16
@walkersz 授权单个文件楼上也说了成本比较高尤其是客户端要上传多个文件到同一 bucket 中的时候,不过为了安全只能这么搞,要不然就是随机一个文件夹进行隔离
|
|
oohDec 12, 2019
17
检查一下文件是否存在
|
|
18
研究一下 ACL 相关配置,应该可以通过设置 Deny 和 MODIFY 相关,实现”防篡改“。
|