我看到文档里提到的是“文件上传成功后会在系统表 _File 中生成一条记录,此后该记录无法被再次修改,包括 metaData 字段 中的数据。”

如果是这样的,那么我想对付费用户才开发,该怎么保证它不被抓包与盗链?

我知道七牛是有着DownloadToken机制的,对于一个私有空间里的资源带有效期与token的,这样即使泄露或被公开,过了有效期都是能访问的,起到了保护作用。

谢谢。

1 人赞了这个帖子.

你好,这种需求我们一般建议用 ACL 来处理,让文件对象只对某个用户或某个用户组可读。具体可以参考我们的 ACL 文档2

设置了权限,对方通过购买支付,拿到的_file.get('url'),如果对外部公开,直接可以访问得到的是不?

对的,限制 URL 的访问其实没什么意义,因为暴露了 URL 之后如果用户想拿去给别人播放的话都不用分享 URL,直接下载下来就可以四处发了。

其实限制媒体文件的播放权限是一个普遍需求(参考5),一般来说是在两端做限制:

  1. 服务端只有在用户通过鉴权的情况下才下发文件
  2. 生成文件的时候进行加密,客户端播放器进行解密。

如果没有主动暴露 URL,那一般来说只要在服务端做个鉴权就没什么问题了。但如果是必须暴露 URL 的场景(譬如前端项目),那就需要对文件本身做加密了。LeanCloud 只能做到服务端的鉴权,对文件的加密解密就需要开发者自己实现了。

说起来是这样的,暴露了就是暴露了,哪怕有效性就只有1秒,该下载也被下载了;不暴露嘛,永远没问题。

无非是这个url不能被盗链到外部在线播放,因为对于授权用户每次请求得到又是一个新的地址。

谢谢大毛大大,用ACL去实践先了。

1 人赞了这个帖子.