我是认真的,请不要使用七牛 对象存储,特别是基于 HTTP 的“免费服务”

2017-11-08 21:03:24 +08:00
 imdjh
最近捣鼓了一个小脚本,把国外 feed 拉到七牛 对象存储,国内客户端拉起来更快嘛。因为“对开发者”免费,做做实验挺不错的。我也算七牛老用户了,刚开 https 那会儿就申请了,记得当时还要充钱才能申请的。闲话就说这么多。


可是在使用中遇到这些问题,请诸位留意这些坑(如果你看完觉得这都是小意思,还要继续用的话):
0. HTTPS 流量均收费(只是提一下)
1. 对于绑定过 HTTPS 的 bucket。请求 HTTPS 得到的 max-age 和设置页面是一致的。而 HTTP 链接则是 max-age 时长一周(不会被改动)。
2. 上一点提到了,如果你用 HTTP 请求,那么你的文件(我的情况是 xml ),会被地域节点缓存一周。而且你请求 HTTP 返回的是 200,不是 304 http not-modified。对于 HTTP 请求,我试过联通宽带、电信手机、移动手机、甚至挂**国内代理** 和国外 vps 都能得到新旧不同的版本。
3. 删除一个文件后。过 30 分钟,照旧能访问,无论 HTTP 或是 HTTPS。

对于第 2 和第 3 点,我想请诸位玩一个游戏。访问同一资源的 HTTP 和 HTTPS 链接,回复下你得到的 xml 内容和所在地里位置。
如果包含‘ 5 楼‘,那么就是昨天的热榜内容。如果有’鹦鹉‘那么就是今天的。当然啦,还可能被删除了,op 于 8:22 操作的删除。
HTTP==》 http://7xo6xf.com1.z0.glb.clouddn.com/v2ex-hot-topic.xml
HTTPS==》 https://dn-imdjh.qbox.me/v2ex-hot-topic.xml
17028 次点击
所在节点    云计算
46 条回复
pynix
2017-11-09 00:46:57 +08:00
就这智商,基本靠别对象。。。储存了。。。
wkl17
2017-11-09 01:50:42 +08:00
我是路过的 看着都感觉不爽。楼上 2 个站着说话腰不疼。

旁观者清,当你陷入某些境况,就算有解决方法也未必就能立即想到。(这种情况我可是遇到很多次了)

智商高就秀秀吧,说说你们的想法做法? talk is cheap.
dangyuluo
2017-11-09 05:33:28 +08:00
你可以试试将删除这个时间手动通知一下更新 CDN 边缘节点?
Trim21
2017-11-09 06:17:08 +08:00
@imdjh 没能用人脑还原出这个标签原本的样子。。。你原来是想发啥?
colordog
2017-11-09 07:05:47 +08:00
我能说我注册了账户几年没用过,然后再登录提醒我欠费账户冻结,联系销售代表么,连登录进去看看的资格都不给我
kimown
2017-11-09 07:22:06 +08:00
从一开始接触到现在用,觉得七牛的 cdn 做的挺烂的,还有 js sdk 也烂,但不得不用,也许他们主要业务不是 cdn,不理解删除或者修改文件后,不主动清空缓存,需要在地址上附加 url 是什么脑回路
renothing
2017-11-09 07:46:12 +08:00
楼主可能对 cdn 有什么误会。
大概说一下,CDN 有两类,一类是 push 方式主动更新节点的。一类是 pull 方式被动更新节点的。楼主说的情况大概是后一类。
imnpc
2017-11-09 08:20:44 +08:00
配置个 https 需要 24 小时
有商最慢不过几小时
psirnull
2017-11-09 08:30:37 +08:00
被七扭坑过几千块, 之前注册后测试传了东西忘了删,过了一年提示欠费几千块,每个月还不停累加, 就起靠这样骗钱的。
49gd
2017-11-09 08:32:22 +08:00
@renothing 楼主的槽点可能是明明是对象存储 整的跟 cdn 一样
imdjh
2017-11-09 08:54:39 +08:00
@renothing 感谢友善回复。可能七牛就是你说的第二类,需要手动调用刷新缓存 API 来更新。有时间我会更新下的。另外,已验证并非 11L@quericy 所说的按照上传站点的协议更新。

很搞不懂 https 外链内容就是好的。可能官方做 https 的时候用心了吧 =]
imdjh
2017-11-09 08:56:22 +08:00
@49gd Bingo,感谢友善回复。没错,我调用的一直是“网页控制台”给出的“外链”。
OneNian
2017-11-09 09:11:09 +08:00
七牛不适合频繁更新
我是这样觉得
就算加了 url 后缀,文件仍然不能更新,而是又缓存了一个“新文件”,但是七牛 web 后台也只能看到那个没更新的文件。
所以最好像 ghosts 那样,静态文件加个 ?xxxx
OneNian
2017-11-09 09:14:57 +08:00
只能被动,去手动刷新,才能让所有节点都更新。
不同节点可能会缓存到不同版本。
zangbob
2017-11-09 09:43:37 +08:00
我就不明白你们,为了那一点儿免费用,天天跟七牛折腾,费不费劲呐。。

又拍的价格也不贵,随便充点儿钱,再加个联盟,可劲儿用都够了。
SourceMan
2017-11-09 09:45:11 +08:00
我是认真的,按照你的描述,某里云一样是 laji
zhchyu999
2017-11-09 10:29:26 +08:00
七牛提供免费服务,获得了一个仇人
slgz
2017-11-09 13:56:34 +08:00
的确,七牛是有这样一个问题, 比如同一个 bucket, 然后相同的文件名(路径也相同), 最后存的图片还是节点缓存的图片, 不是新的图片,
imdjh
2017-11-09 22:45:01 +08:00
@slgz 请麻烦看下原帖附言 2,其实是七牛没告诉我们每次变动都要调用 CDN 刷新 API。可笑的是,HTTPS 就没这个问题。

我自己测试成功了,希望你改了代码后也能顺利 =]

FYI:
官方文档链接==》 https://developer.qiniu.com/fusion/api/1229/cache-refresh
imdjh
2017-11-09 22:47:31 +08:00
@liangchaoboy 非常感谢你提供的文档,问题完美解决。HTTP 内容在 2 分钟左右就被更新。

监控节点在华东和美国。用的是单一 URL 作为参数的刷新。希望能给之后的用户一个参考。更多内容请见原帖附言 2

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/404735

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX