秒传属于应用自身行为。一般来说,秒传和消重相关。A、B虽然path不同,但在七牛的key一样,比如取文件内容的sha1(或者用七牛的文件hash/etag算法),这样上传一个文件前查下七牛服务器有没有某个sha1(或七牛的hash/etag),有就说明不用传了,这就实现了秒传。 A、B 的 path 和七牛的 key 的对应关系,应用应该有个数据库来维持 查询七牛有没有某个 key,可以用 stat api。这个函数支持批量操作(batch)。 关于七牛的 hash/etag 算法,可以见 https://github.com/qiniu/qetag 七牛的上传策略中有 saveKey 字段,可以在上传客户端不指定 key 时计算一个 key。比如 saveKey = "$(etag)" 就是以七牛的 hash/etag 作 key;saveKey = "$(sha1)" 就是以文件内容的 sha1 作 key。这个 saveKey 并不能够用于秒传,但可以实现消重,适合那些客户端没有能力做秒传的场景,比如 Web 端。 如果不希望做消重,并且自己有判断两个文件一致的方法,七牛也有 copy api 可以实现秒传。
秒传属于应用自身行为。一般来说,秒传和消重相关。A、B虽然path不同,但在七牛的key一样,比如取文件内容的sha1(或者用七牛的文件hash/etag算法),这样上传一个文件前查下七牛服务器有没有某个sha1(或七牛的hash/etag),有就说明不用传了,这就实现了秒传。
如果不希望做消重,并且自己有判断两个文件一致的方法,七牛也有 copy api 可以实现秒传。