V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
htfy96
V2EX  ›  Linux

从服务器下载大文件的最好方法是?

  •  
  •   htfy96 ·
    htfy96 · 2015-09-23 20:08:21 +08:00 · 29345 次点击
    这是一个创建于 3130 天前的主题,其中的信息可能已经有所发展或是发生改变。
    之前在 aliyun 租了个 vps 做爬虫,现在爬虫完成后大概获得了 15G 的数据(已压缩)

    这边网络最多 1MBps ,估计要下载很长时间,网上有人提到了 scp ,但是好像不能断点续传。现在服务器上什么也没有(ftp/http 服务器)。请问有什么比较好的方法把数据拖下来呢?
    第 1 条附言  ·  2015-09-25 10:09:40 +08:00
    现在大致方法是
    临时提升服务器带宽,开个 http 服务器,百度云离线
    84 条回复    2015-09-26 09:44:59 +08:00
    pythoner
        1
    pythoner  
       2015-09-23 20:11:32 +08:00
    rsync --partial
    FinlayLiu
        2
    FinlayLiu  
       2015-09-23 20:12:10 +08:00
    迅雷。。。
    pixstone
        3
    pixstone  
       2015-09-23 20:14:51 +08:00 via iPhone
    迅雷+1
    kslr
        4
    kslr  
       2015-09-23 20:15:29 +08:00 via Android
    Yun or apt install nginx
    kslr
        5
    kslr  
       2015-09-23 20:15:50 +08:00 via Android
    yum
    ryd994
        6
    ryd994  
       2015-09-23 20:17:43 +08:00 via Android
    bypy 上传,百度的数据还不是都交给国家,没什么不放心的
    另外用 filezilla 可以 sftp ,但是触发流量识别从此 vps 被消失的可能性很大
    constance
        7
    constance  
       2015-09-23 20:18:37 +08:00
    bypy 上传到百度云
    loading
        8
    loading  
       2015-09-23 20:18:41 +08:00 via Android
    装个 bypy ,上传到百度云,然后再下载。
    kkfnui
        9
    kkfnui  
       2015-09-23 20:28:13 +08:00
    迅雷
    kkfnui
        10
    kkfnui  
       2015-09-23 20:30:33 +08:00
    @kkfnui 跟风了,连 ftp 和 http 都没有那就没有肯定不能用迅雷了。
    jasontse
        11
    jasontse  
       2015-09-23 20:31:44 +08:00 via iPad
    lrzsz

    ....其实还是 scp
    Tink
        12
    Tink  
       2015-09-23 20:39:22 +08:00 via iPhone
    起 web 服务, aria2 下
    htfy96
        13
    htfy96  
    OP
       2015-09-23 20:44:44 +08:00
    @loading
    @constance 然而学校很奇怪的是百度云大概只有 200K 左右速度
    constance
        14
    constance  
       2015-09-23 20:47:23 +08:00
    @htfy96 可以冲个会员试一下
    phithon
        15
    phithon  
       2015-09-23 20:48:45 +08:00   ❤️ 3
    一键开启 http :
    python -m SimpleHTTPServer
    php -S localhost:8080

    一键开启 ftp:
    python -m pyftpdlib #需要安装 pyftpdlib

    另外, rsync 比 scp 快得多,适合传输大量文件,而且支持增量传输。
    三种方法楼主选择。。。
    htfy96
        16
    htfy96  
    OP
       2015-09-23 20:51:06 +08:00
    @phithon 多谢,我用 ruby 也能很方便地建服务器,之前忘了这一点了。已经压缩后的单个文件其实各种方法都速度差不了多少。
    regeditms
        17
    regeditms  
       2015-09-23 20:51:44 +08:00
    弄个 nginx 然后 ip + 地址 访问下载了。好像是多个线程下载的。
    htfy96
        18
    htfy96  
    OP
       2015-09-23 20:52:23 +08:00
    pmpio
        19
    pmpio  
       2015-09-23 21:04:32 +08:00
    大文件还是用 7z 分一下卷吧,一个文件 512M ,不管用啥方法下载,保险系数都大得多。。。。
    JustZht
        20
    JustZht  
       2015-09-23 21:17:49 +08:00
    bypy 配合 bcloud 客户端
    002jnm
        21
    002jnm  
       2015-09-23 21:21:29 +08:00 via iPhone
    我试过迅雷可以超过 1M 宽带。不知道为什么
    002jnm
        22
    002jnm  
       2015-09-23 21:22:00 +08:00 via iPhone
    。。我以为你阿里云 1m 宽带。。。当我没说。
    letitbesqzr
        23
    letitbesqzr  
       2015-09-23 21:39:35 +08:00
    @ryd994
    @loading
    @JustZht
    bypy 这东西必须需要申请 PCS API ,请问现在在哪里申请?百度那东西老改版 根本找不到地方了
    JustZht
        24
    JustZht  
       2015-09-23 21:45:24 +08:00
    @letitbesqzr 初次使用 bypy 程序会提示的吧...会给个链接 然后浏览器进去就能拿到 token 我记得一个月前还试了一次
    miemiekurisu
        25
    miemiekurisu  
       2015-09-23 22:07:28 +08:00 via Android   ❤️ 1
    ………………架个 Nginx ,直接 aria2c -c -x15 -s 15 拖下来
    likuku
        26
    likuku  
       2015-09-23 22:09:48 +08:00
    压缩了就不好用 rsync 了... rsync 适合大量小文件...
    likuku
        27
    likuku  
       2015-09-23 22:11:27 +08:00
    vps 不差空间的话,那就分成很多小卷,再用 rsync 拖。

    btsync 也可以试试。。假若可能通讯的话。
    anjouslava
        28
    anjouslava  
       2015-09-23 22:15:22 +08:00
    可以用 SFTP ,支持断点续传,用 WinSCP , SSH 登录就行,默认应该是 100kb 以上文件启用断点续传,不过建议还是设置为所有文件
    a1058021348
        29
    a1058021348  
       2015-09-23 22:23:02 +08:00 via iPad
    我都是用 Nginx+IDM 开 32 个线程下载的。。。。就算是美国 VPS 也能跑满百兆带宽。。。
    Aliencn
        30
    Aliencn  
       2015-09-23 22:46:50 +08:00   ❤️ 3
    往阿里云上传数据不限速,但是从阿里云下载速度就会限速了(阿里云服务器的带宽限制)
    最快的方法是通过内网传到阿里云 oss 上(内网不限速),然后你在从 oss 上下载(受你带宽限制)
    ryd994
        31
    ryd994  
       2015-09-23 23:12:24 +08:00 via Android
    @letitbesqzr bypy 自带一个,可以用的
    maskerTUI
        32
    maskerTUI  
       2015-09-24 00:21:19 +08:00 via Android
    xftp
    iamnuomi
        33
    iamnuomi  
       2015-09-24 00:35:25 +08:00   ❤️ 3
    都闪开,用 UDP 才是王道

    tsunami-udp

    tsunami-udp 是一款专为网络加速诞生的小工具。 思路很简单,使用 TCP 进行传输控制、用 UDP 进行数据传输。

    这样可以无状态的进行数据传输,然后中间加一些文件校验和重传机制,达到加速传输的目的。

    传统的 tcp 传统,基于长连接,很容易受网络波动的影响。特别是网络拥塞的情况下,只能通过多进程 /线程来进行有序传输。

    https://github.com/cheetahmobile/tsunami-udp/wiki



    udt

    UDT is a reliable UDP based application level data transport protocol for distributed data intensive applications over wide area high-speed networks. UDT uses UDP to transfer bulk data with its own reliability control and congestion control mechanisms. The new protocol can transfer data at a much higher speed than TCP does. UDT is also a highly configurable framework that can accommodate various congestion control algorithms. (Presentation: PPT 450KB / Poster: PDF 435KB )

    http://udt.sourceforge.net/
    akira
        34
    akira  
       2015-09-24 00:40:20 +08:00   ❤️ 2
    晚上快 12 点的时候提升临时带宽到 100M ,瞬间下完
    webjin
        35
    webjin  
       2015-09-24 01:13:47 +08:00 via Android
    叫阿里云的人打包刻录光盘或者 U 盘,然后快递
    oott123
        36
    oott123  
       2015-09-24 01:28:09 +08:00 via Android
    https://github.com/oott123/bpcs_uploader
    对大文件比 bypy 要稍好…(因为直接调用 curl 命令行
    还内置一个 key …
    davidyin
        37
    davidyin  
       2015-09-24 01:36:09 +08:00
    去网吧下载比较快
    JasonQ
        38
    JasonQ  
       2015-09-24 01:37:50 +08:00
    所以我就不能理解 1m 的带宽这主机怎么用啊...
    同等价格的 bandwagon 服务比阿里云好多了啊。
    49
        39
    49  
       2015-09-24 06:15:23 +08:00 via Android
    @iamnuomi 终于有人说 UDT 了喵('・ω・')
    ryd994
        40
    ryd994  
       2015-09-24 07:15:17 +08:00 via Android
    @oott123 bypy 可以直接用啊,为啥大家都觉得它要 key ?
    shoaly
        41
    shoaly  
       2015-09-24 08:11:13 +08:00
    曾经下过 10 多个 G 的数据库, 由于服务器在国外非常的悲催 各种断, winscp 不靠谱, 因为文件大了之后, 断线之后他会找不到北,
    最后的解决办法是搭建一个 http 服务器, 然后 挂迅雷
    leyle
        42
    leyle  
       2015-09-24 08:45:18 +08:00 via Android
    搭个 http 服务器,然后用 aria2c axel 这些支持多线程,支持断点续传的工具下载,我从 linode 下载大文件,都可以跑满我本地带宽。
    Huntsman
        43
    Huntsman  
       2015-09-24 09:01:35 +08:00
    @leyle 嗯 这个靠谱! aria2 才是神器!
    oott123
        44
    oott123  
       2015-09-24 09:25:20 +08:00 via Android
    @ryd994 bpcs_uploader 也可以直接用啊,还不用一个月更新一次
    popok
        45
    popok  
       2015-09-24 09:29:59 +08:00
    开 http ,随便一款可断点续传的下载工具拖吧,私有数据,反正迅雷也加不了多少速度。
    bozong
        46
    bozong  
       2015-09-24 09:33:52 +08:00
    @ryd994 有没有比较给力的 bypy
    ryd994
        47
    ryd994  
       2015-09-24 09:54:30 +08:00 via Android
    @bozong pip install bypy ,一直都是直接用的
    bozong
        48
    bozong  
       2015-09-24 09:55:27 +08:00
    @ryd994 恩恩
    bozong
        49
    bozong  
       2015-09-24 10:04:19 +08:00
    @ryd994 速度的话 还行吧 我 10M 企业带宽、上传一个 110M 的文件 花了 50s
    PandaSaury
        50
    PandaSaury  
       2015-09-24 10:06:28 +08:00
    rsync 或者 scp
    bozong
        51
    bozong  
       2015-09-24 10:07:50 +08:00
    @ryd994 这个会不会有影响
    martifact
        52
    martifact  
       2015-09-24 10:40:01 +08:00
    搭个 http/ftp server, wget -c
    liyvhg
        53
    liyvhg  
       2015-09-24 11:05:24 +08:00
    @a1058021348 我怎么想到了[丧心病狂]这个词... 32 个线程, 郭佳也不管管么
    R09PR0xF
        54
    R09PR0xF  
       2015-09-24 11:10:48 +08:00
    wget -c
    hicdn
        55
    hicdn  
       2015-09-24 11:57:18 +08:00
    @bozong syncy 支持多线程
    qq446015875
        56
    qq446015875  
       2015-09-24 12:23:34 +08:00
    @htfy96 和学校似乎没关系,百度云开始限速了
    odirus
        57
    odirus  
       2015-09-24 12:26:44 +08:00
    就像楼上说的,搭建简单 HTTP ,用百度云去下载,然后你再从百度云下载回来,既可以断点续传,也永久保留了,何乐而不为。
    HarveyTvT
        58
    HarveyTvT  
       2015-09-24 12:29:07 +08:00
    axel -n 100 "url"!!!100 个妥妥的
    bozong
        59
    bozong  
       2015-09-24 12:47:00 +08:00
    @hicdn 恩恩 我试试
    bozong
        60
    bozong  
       2015-09-24 12:48:04 +08:00
    @odirus 什么叫用百度云去下载
    zhuangzhuang1988
        61
    zhuangzhuang1988  
       2015-09-24 13:04:48 +08:00
    配置个 Nginx 然后用迅雷下载.
    realpg
        62
    realpg  
       2015-09-24 13:29:16 +08:00
    apt-get install nginx
    cp xxx.tar.gz /var/www/html
    odirus
        63
    odirus  
       2015-09-24 13:33:10 +08:00
    @bozong 百度云盘离线下载 http://pan.baidu.com/
    odirus
        64
    odirus  
       2015-09-24 13:36:15 +08:00
    @letitbesqzr 为什么你们不直接开个 http 端口给百度云下载呢?怕被别人下载了?
    NovemberEleven
        65
    NovemberEleven  
       2015-09-24 13:43:26 +08:00
    我比较好奇爬什么数据,啊哈哈。
    bozong
        66
    bozong  
       2015-09-24 14:22:07 +08:00
    @hicdn windows 下面
    ultimate010
        67
    ultimate010  
       2015-09-24 14:51:03 +08:00 via iPhone
    限制出口带宽,什么工具都没用。
    dididada
        68
    dididada  
       2015-09-24 15:04:14 +08:00
    开迅雷 VIP ,秒下,速度很快, VIP 也不贵, TB 也可以买到,只要几块而已。
    wizardoz
        69
    wizardoz  
       2015-09-24 16:06:22 +08:00
    压缩成多个文件不靠谱,中间一个文件错误了全部都解不开。还是搭建一个web服务,然后再爬回来本地。顺便把地址告诉大家分享一下。
    paw
        70
    paw  
       2015-09-24 17:18:53 +08:00
    aria2 +1
    y1993bbz
        71
    y1993bbz  
       2015-09-24 19:09:56 +08:00
    上传到 oss 在下载吧
    Andy1999
        72
    Andy1999  
       2015-09-24 19:18:27 +08:00 via iPhone
    @a1058021348 然后变 SYN Flood 了
    nocheater
        73
    nocheater  
       2015-09-24 19:34:40 +08:00
    1m 是阿里云的外网速度吧?
    如果是这样,你临时开一个阿里云的按流量计费的 100m 带宽的 vps ,从内网把数据先传过去(这个应该是千兆的),然后用任何下载工具都可以在半小时内搞定
    htfy96
        74
    htfy96  
    OP
       2015-09-24 19:57:37 +08:00
    @JasonQ 因为要爬京东的书籍,所以国外的 vps 延时太大只能用国内的
    a1058021348
        75
    a1058021348  
       2015-09-24 23:45:08 +08:00 via iPad
    @Andy1999 反正没人看我博客,占满带宽也没啥。。。😂
    Andy1999
        76
    Andy1999  
       2015-09-25 00:01:52 +08:00 via iPhone
    @a1058021348 我是指多线程下载可能会造成 SYN Flood 攻击
    murusu
        77
    murusu  
       2015-09-25 00:44:44 +08:00
    安装 nginx ,临时开个 http 服务就得了
    数据想保密的话压缩时加密一下
    不要作死直接用 ssh 传大文件,高几率会被封端口
    guotie
        78
    guotie  
       2015-09-25 09:57:30 +08:00
    rsync.
    congeec
        79
    congeec  
       2015-09-25 11:10:12 +08:00
    不要用 python http.server, 用这俩
    https://github.com/sebsto/tsunami-udp
    https://github.com/GangZhuo/BaiduPCS
    nginx , ftpd 啥的也行总之要有断点续传,不要加密(墙干扰),数据不需要那么精确的话用 UDP
    Izual
        80
    Izual  
       2015-09-25 13:26:11 +08:00
    迅雷离线,从美国那边拉回将近 100G 的网站备份……
    然后我才想起来忘了分卷压缩……
    hicdn
        81
    hicdn  
       2015-09-25 14:40:50 +08:00
    @bozong windows 下直接用官方客户端啊,这东西就不是给 windows 用的
    smileawei
        82
    smileawei  
       2015-09-25 18:09:46 +08:00
    同机房开个按流量收费的 VPS 然后用内网 IP 拖过去 再下载下来。 15G*0.8 也没多少钱
    mxq0923
        83
    mxq0923  
       2015-09-25 22:26:14 +08:00
    传 OSS 后直接下载.
    ryd994
        84
    ryd994  
       2015-09-26 09:44:59 +08:00
    @bozong 我不用 bpcs_uploaders 的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5676 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 54ms · UTC 01:53 · PVG 09:53 · LAX 18:53 · JFK 21:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.