覆盖上传文件的新版本之后,下载下来还是旧的。 客服说解决办法只有:
简而言之,就是七牛的文件存储和 CDN 是割裂的;文件存储中上传一个文件,CDN 不知道该文件已经更新了。请问七牛的文件存储是外包出去的吗?
试了一下 up 云,上传了新文件之后立马就可以下载到最新版,没有任何问题。
以及,qiniu python SDK 功能各种不全;在线文档各种旧。
|  |      1Athrob      2017-07-17 16:34:45 +08:00 via iPhone 真能喷 | 
|      2whileFalse OP @Athrob 喷的不对吗? | 
|  |      3lxml      2017-07-17 16:48:20 +08:00  1 阿里云 OSS 也是,CDN 需要手动刷新,或是过期后自动刷新,不立刻更新,可能是处于性能的考虑? | 
|  |      4crysislinux      2017-07-17 16:53:01 +08:00 via Android cdn 肯定是异步的啊,本来就不该覆盖以前的文件 | 
|  |      5Athrob      2017-07-17 16:54:17 +08:00 via iPhone  1 @whileFalse CDN 是有缓存时间的,强制刷新就是跟客服说的方法差不多。虽然常理上覆盖了旧的就应该去刷新缓存,但按规则刷新这也不能叫弱智吧。 | 
|  |      6tigerstudent      2017-07-17 16:55:24 +08:00 5#说的应该是对的。 | 
|  |      7mkeith      2017-07-17 17:01:02 +08:00 LZ 什么都不懂啊 | 
|      8lianz      2017-07-17 17:06:54 +08:00  1 我看是你弱智。第一次用 CDN ? | 
|      9whileFalse OP  2 @crysislinux 我要是只用他们家 CDN 我根本就不会问出这种问题。我用的是他们家文件存储,结果上传上去下载的还是旧的这能叫文件存储么。 @Athrob 我不满的地方在于:文件存储和 CDN 完全是割裂的。自己提供的服务,搞得跟外包的似的。 如果早知道文件存储和 CDN 割裂,当初就不会用七牛。 毕竟人家 up 云没问题。之前用 up 云用的挺好的,这个项目想着可能图片处理多一些,就用了七牛,没想到这么坑。 | 
|      10whileFalse OP  2 | 
|  |      11jarlyyn      2017-07-17 17:11:54 +08:00 | 
|  |      12tabris17      2017-07-17 17:12:05 +08:00 加个版本参数,CDN 一般都这么处理,没啥好喷的 | 
|  |      13donlxn22      2017-07-17 17:14:04 +08:00  1 分布式系统中 CAP 只能取其二,CDN 选择了 AP,对于 C 一致性采用了延迟更新的策略。 一个全球分布的 CDN 具有无数节点,如此多节点在上传新文件之后的更新无疑需要花费一段时间。但花费这段时间之后带来的是性能方面的提高。 如果一个 CDN,能在文件更新之后瞬间提供新文件的下载,这只说明了一件事情,新的文件并没有真正的分布式存储起来。 | 
|      14whileFalse OP | 
|      15stabc      2017-07-17 17:37:56 +08:00  1 这个我是比较能理解 LZ 的。 如果商家的 CDN 和文件存储相对独立(像阿里云腾讯云那样),那么这种更新文件后不立即更新 CDN 的现象可以理解。 问题是七牛推出的所谓“融合 CDN ”,带有很强的捆绑特性,甚至你不用 CDN 的话,默认的存储 URL 是有很大访问限制的,这种情况下的确应该在文件更新方面做更好的优化。 | 
|  |      16bomb77      2017-07-17 17:41:09 +08:00  2 文件存储竟然还要自己强刷?哈哈哈哈哈哈 | 
|  |      17newghost      2017-07-17 17:46:01 +08:00 这很正常,所有的 DNS 都需要手动刷,而且还不是立即生效。 各个节点同步需要时间呀。 所以一般都用新的文件名。 | 
|  |      18ovear      2017-07-17 17:51:34 +08:00  1 跟我一起念 融合 CDN 融合 CDN 融合 CDN 七牛没有自己的 CDN | 
|  |      20likuku      2017-07-17 17:55:56 +08:00  1 CDN 刷新两个办法:1, TTL 到期 2,使用 CDN 供应商提供的 API/工具 自己主动去 purge. (主流 CDN 做法) 七牛云存储自带 CDN 服务也提供有 purge 功能,七牛云存储文档和 SDK/API 文档 都有 如何 purge CDN 的方法。 | 
|      21whileFalse OP @ovear 你这么一说我忽然理解了…… 我也理解为啥 up 云配个 ssl 证书分分钟的事儿,七牛就要最多 24 小时结果 24 小时还没完事了 我也理解为啥七牛没有 http/2 了 我一点都不生气了 只是,下次还是用 up 云好了…… | 
|  |      22ovear      2017-07-17 18:11:42 +08:00  1 @whileFalse 偷偷跟你说,七牛有些东西要人工配的。。 | 
|  |      23jayin      2017-07-17 18:13:56 +08:00  1 文件存储 不是外包出去的,外包出去的是 CDN (逃 某又拍云商务私底下跟我说的。 | 
|  |      24isCyan      2017-07-17 18:18:36 +08:00 via Android  2 其实七牛可以直接访问源站,文档里有源站域名,你的存储空间域名不变,访问的服务器 ip 改成 nb-gate-io-msrc.qiniu.com 的 ip 一般就可以,不限区域,偶然发现的。 xxxx.qiniudns.com 那个 cname 域名前面加上 src. 变成 src.xxxx.qiniudns.com 就是七牛源站。即使是别的区域也有可能源站在华东。 偶然发现的。算是解决办法吧。流量费好像照收,但不是在 cdn 里面,价格大致和国内 cdn 相同。 | 
|  |      25noErr      2017-07-17 18:54:12 +08:00 @whileFalse 顶 LZ | 
|  |      26jasonpeng0322      2017-07-17 23:44:51 +08:00 文件名取成文件的 hash 不就解决啦。 |