关于要不要发这篇文章,纠结了很久。既然写了,还是发出来吧。
通过朋友把问题反馈给了对应的团队,客服刚刚也打电话给我解释具体问题了。 处理的蛮好的。
听朋友讲过许式伟早期创业的一些故事,蛮佩服的。 这或许也是我成为七牛忠实用户的主要原因之一吧。
前不久,换了其他云存储。有点不舍得。
希望七牛团队可以保持优秀,甚至再搞点牛逼的技术产品出来。
直接贴沟通记录了,有点长。
下载同一个 bucket 下的小文件,成功。 下载大文件,失败, $ wget http://data.xxx.me/xxx.bson.tar --2019-01-07 17:57:41-- http://data.xxx.me/xxx.bson.tar Resolving data.xxx.me... 58.xxx.xxx.29 Connecting to data.xxx.me|58.xxx.xxx.29|:80... connected. HTTP request sent, awaiting response... 403 Forbidden 2019-01-07 17:57:42 ERROR 403: Forbidden.
收到回复
您好, 文件过大可能会由于网络波动等原因造成下载失败, 建议您使用 qshell 工具进行下载: https://developer.qiniu.com/kodo/tools/1302/qshell ; https://github.com/qiniu/qshell/blob/master/docs/get.md
报错是 403 Forbidden,必现。客服却解释为网络波动等原因。 不过,只要能解决问题就行了。可能客服也不懂技术,不难为他们了。
看 qshell 工具文档,没找到断点续传的功能。公网传输 18G 文件,还不能断点续传。 自研工具相对于 wget 的优势是什么?
试了一下,不报 403 了。看来还是有点厉害的。
下载了一周,根本无法完整下载。最大的两次,下载了 10G。 关键是,下载不完整,根本没有报错。 自己检查文件大小才发现的错误。
自研工具的优势,大概就是绕过检测,出错不报错。假装成功。
猜测,七牛大概是出于防 DDOS /流量攻击等的考虑,限制了单个请求的最大传输流量。wget 的时候,服务器先检测文件大小,所以返回 403. 自研的工具,绕过了前面的检测,但传输到一定量的时候,可能是 bug,也可能是触发了安全机制,传输会中断在 10G 流量左右。推测,从七牛上不可能完整下载大于 10G 的单个文件。
对于七牛客服给的坑爹解决方案,我是很生气的。
qshell 下载,由断点续传的功能么?下载了几天了,没有一次下载完整的。最多只能一次下载 10G 体验太差了。
客服让我用 qshell 工具的 qdownload
qshell 工具的 qdownload 命令是支持单个文件断点续传的,qdownload 使用文档如下: https://github.com/qiniu/qshell/blob/master/docs/qdownload.md 你尝试按照文档要求的搁置配置参数进行下载。文档中提到的下载配置文件 <LocalDownloadConfig> 是需要您自己创建并设置的。
根据文档搞好了配置文件,下载报错 403,我误以为是配置不对导致 URL 中的 '/' 存在转义问题。
贴了完整的配置文件和日志给客服。
Download xxx.bson.tar failed by url http://data.xxx.me/xxx%2Fxxx.bson.tar?e=155003xxxxxxxNo8SfwGM= 403 Forbidden 怎么避免 url 中的 / 被转义? $ cat config.json { "dest_dir" : "/Users/xxx/Downloads/qshell-v2.3.5/data", "bucket" : "big-data", "prefix" : "xxx%2Fxxx.bson", "suffixes" : ".tar", "cdn_domain" : "http://data.xxx.me", "referer" : "", "log_file" : "download.log", "log_level" : "info", "log_rotate" : 1, "log_stdout" : false }
客服竟然真的指出我 prefix 字段配置的 '/' 不对:
核对下前缀 prefix 的正确格式。 文档中前缀格式是以 / 结尾的: xxx (认真的文档截图) 另外,您仔细确认下前缀的概念: 你想设置的前缀,正确格式可能要在最后加个斜线 /
翻译成普通话大概就是,你这个用户不行,文档里虽然没写,但例子中的前缀以 '/' 结尾,你竟然配成了一个文件的 basename。
于是,我挑了一大一小 2 个文件,加了 'sync/' 前缀,努力做一个正确的用户。
小文件下载成功,大文件依旧报错 403.
很明显:
我问客服:
我只需要下载一个文件,怎么配?
客服说:
下载单个文件使用 get 命令即可: https://github.com/qiniu/qshell/blob/master/docs/get.md 例如: qshell get <Bucket> <Key> [-o <OutFile>] 其中, bucket 写资源所在的空间名; key 写资源在七牛空间的名字 -o <Outfile> 可选项,是下载后保存在本地的名字。
回复的很认真,但是,绕回到老方案上,就尴尬了。
你先看看这个工单的历史记录再回复。 不知道我的理解能力太差,还是你们的产品/文档有问题, 从云存储下载一个大文件,竟然前前后后搞了一个星期了,又回到了原点。 请提供一个你们测试过并且确认可用的解决方案。
然后收到客服的回复, 他们真的就去下载我的文件做测试了。。。
很多人可能猜到了,我已经加了 'sync/' 前缀测试 qdownload 命令了。 原来的 URL 访问,肯定 404.
赶紧回复:
请不要用我的文件做测试,这是内部数据。
客服又跟我确认,那个文件还在不在,我回复,文件已删除。
客服回复:
您好, 如果文件已经删除,是无法下载的。 如果是正常存储在七牛,没有被删除的文件,您可以使用 qshell 的 get 命令下载该文件. https://github.com/qiniu/qshell/blob/master/docs/get.md
内伤,聊不动了。
![]() | 1 xnode 2019-01-15 17:09:27 +08:00 ...... |
![]() | 2 F281M6Dh8DXpD1g2 2019-01-15 17:14:35 +08:00 ![]() 国内做云的都是菜鸡 |
![]() | 4 kakudesu 2019-01-15 17:24:48 +08:00 2333 |
5 52coder 2019-01-15 17:26:33 +08:00 ![]() 之前用七牛做免费图床,帮他们推荐了 20 多个人注册,后面测试域名突然收回,图片还下载不下来,最后用了那个命令行工具,写了个 shell 脚本,七牛是真的坑。 |
![]() | 6 GDC 2019-01-15 17:31:17 +08:00 via iPhone 令人捉急… 这逻辑太沙雕了 |
![]() | 7 niuer 2019-01-15 17:38:01 +08:00 您好:关于您的问题,首先这边表示抱歉没有定位您的需求。七牛这边是支持断点续下载的,用 wget -c -t 0 即可;再次对给您造成的困扰表示抱歉。 |
![]() | 8 niceworld 2019-01-15 17:40:04 +08:00 测试域名每日限流 10g 的原因? |
![]() | 9 misaka19000 2019-01-15 17:42:39 +08:00 @niuer #7 wget 不是 403 了吗 |
![]() | 10 saluton 2019-01-15 17:57:27 +08:00 @misaka19000 233333 |
![]() | 11 ioven 2019-01-15 18:02:54 +08:00 瞎猜 wget 用 qshell 的 useragent 能不能绕过检测? |
12 zeraba 2019-01-15 18:38:29 +08:00 via Android https://developer.qiniu.com/fusion/kb/1319/test-domain-access-restriction-rules 测试域名每日限制 10G 可以绑定一个自己的域名解决呗? 这个 403 不太友好,应该可以用 lua 返回一句友好提示 |
13 zeraba 2019-01-15 18:46:29 +08:00 via Android @niuer 他下载小文件没有问题,大文件出现了问题,如果是网络波动不会是 403,应该是直接连接断开了,再结合你们的文档测试域名的每日 10G 流量限制和他描述的最大只能下载 10G 应该可以定位问题了? |
![]() | 14 dapang1221 2019-01-15 19:13:04 +08:00 ![]() 笑死我了,从根源解决问题,下载不动怎么办,让用户把文件删了就行了 |
![]() | 15 V2exUser 2019-01-15 19:18:26 +08:00 via Android 换个 win 系统试试 |
![]() | 16 zsan6 2019-01-15 19:26:51 +08:00 ![]() 就凭他的测试域名的坑,就得被人骂死。。。LESE |
![]() | 17 Mohanson 2019-01-15 19:54:55 +08:00 via Android ![]() 重启下电脑 |
![]() | 18 xiangyuecn 2019-01-15 20:27:02 +08:00 挺好奇把这十几 G 的单个文件传上去的动机。。。不知道七牛有没有这种:寄堆硬盘过去把我的数据拷出来的服务 |
![]() | 19 pathbox 2019-01-15 21:04:20 +08:00 via iPhone 也就是可以传的上去,但现在下不下来了额? |
![]() | 20 chaosjohn 2019-01-15 21:26:55 +08:00 @xiangyuecn 有,当时我就是寄了两块 8T 的盘到七牛的 |
![]() | 22 uyhyygyug1234 2019-01-15 22:04:28 +08:00 有 ssh 用 rsync,可以续传,或者开个 ftp。。啥的都可以,而且 18G 不大啊 |
23 azh7138m 2019-01-16 00:30:09 +08:00 via Android @uyhyygyug1234 qshell 是个 cli 工具,ssh 是啥玩意。 楼主是七牛上面的文件下不回来了。 七牛从网宿换到昆仑之后,我感觉我加载东西经常出问题,可同事的 osx 就没问题( linux 用户的心都碎了) |
24 heww 2019-01-16 09:09:39 +08:00 via iPhone 别提了,我在 onedrive 中的一个 7G 大小的文件现在也下载不下来。 |
![]() | 25 opengps 2019-01-16 09:56:13 +08:00 我在乐视云存了一个 500 多 G 的文件,后来乐视云关门了。。。 |
26 night98 2019-01-16 11:19:58 +08:00 十分怀疑是 timeout 的问题,哈哈 |
27 nvhanzhi 2019-01-16 15:03:06 +08:00 我在七牛有 100 多 G 的文件,想改低频存储,七牛竟然不支持 bucket 一键转存储类型。。。不能一键导出下载链接。。 收回测试域名。。。呵呵 这垃圾公司 |
![]() | 28 my3157 2019-01-16 16:28:25 +08:00 // 前段时间帮助客户吧一个 11T 的文件上传到对象存储, so easy |
![]() | 29 pasca 2019-01-16 16:36:43 +08:00 10T 以下可自己传 ,10T 左右可以联系客服寄硬盘给七牛吧! 另外,好奇这么大的文件是啥,哈哈,想以前单机游戏时代,经常 40G 左右的安装包那叫一个愁啊,放百度网盘慢的一匹,当时也是放在七牛,就是,,,,,,,,,不是免费让我很伤。 |
![]() | 30 MartinWu 2019-01-16 17:59:17 +08:00 淡定,天下客服一个样。不要憋到内伤就好。我之前跟阿里云的客服沟通也试过被类似逻辑憋到内网,后面让他找个工程师跟我沟通才算把问题搞清楚。顺便帮阿里云 debug 了下。 |