利用DigitalOcean中转大文件

声明:本文基于Ubuntu 14.04 x64,由于本人自身对linux的掌握仅仅是初级阶段,所以本文只记录操作指令流程,不做具体分析。其中大部分操作指令来自google搜索结果,所以这篇文章些地方理解或有错误,恳请指正。

场景

昨天有朋友让他帮他从海外ftp拖一个16G的文件,由于国内直连速度实在太渣,加上ftp网站那边权限限制较严格,无法使用目前已有的大部分公网离线服务,也不能用第三方FTP客户端下载,只能通过浏览器下载。所以我就自己用DO转了下,上传到国内的百度云,做个记录。方便下次使用。
本文适用场景:下载链接不固定且只能通过浏览器下载的文件。


需要的软件

  1. xrdp(假设文件所在站点权限验证严格,无法用curl直接下载,必须通过浏览器)
  2. Firefox浏览器(chrome浏览器默认不能在root下运行,配置较比较麻烦)
  3. rar(其他压缩软件都没有恢复记录功能。当然这里如果对网速和RP有信心的话也可以直接FTP传回来。不过有一定几率坏档,所以不推荐)
  4. bcloud(linux下百度云的非官方客户端。也可以用bypy,不过后者没有gui,配置相对麻烦)

##操作过程##
DO上建立VPS并利用终端连接等前略过程省略。从进入VPS系统开始。

###安装远程桌面###
中间可能要输密码,确认等,自行根据shell显示的指令输入即可,这段内容参考了Ubuntu 14.04 – How to install xrdp in Ubuntu 14.04。以下命令均在本机shell终端下执行(putty等)

  1. 安装XRDP包

    sudo apt-get install xrdp
  2. 安装xfce4桌面环境

    sudo apt-get update
    sudo apt-get install xfce4
  3. 配置xrdp使用xfce桌面

    echo xfce4-session >~/.xsession
    sudo service xrdp restart

此时远程桌面已经可以用了,windows打开远程桌面连接,输入ip和linux的用户名(DO默认是root)然后登录即可。

安装Firefox

由于DO的vps默认是root帐户登录,而出于安装考虑,chrome不能在root账户下运行,所以改用Firefox。

  1. apt源安装Firefox
    sudo apt-get update
    sudo apt-get --purge --reinstall install firefox

安装完成后可以切换到远程桌面,在左上角的Applications Menu>Internet下可以看到Firefox了。打开之后即可使用。(这里的Firefox对非拉丁文的支持不好,不会显示字符。猜测是xfce的问题,不过不是很影响使用,所以略过不提)

打包文件

略过在远程桌面内用Firefox下载等一系列过程,现在假设文件已经下载到vps了,需要压缩了。

上传之前建议用rar打包,理由如下:

  1. 文件大,直接传容易坏档。压缩包可以保证文件不坏(能解压出来就证明和源文件一样,解压不了的话就说明压缩包坏了,重下一部分即可)
  2. rar可以加恢复记录。 之所以用rar而不是zip、7z等,主要原因在于出现部分压缩包坏档的情况下,恢复记录有很大的可能可以避免重复下载。而目前流行的压缩软件里,只有rar可以加恢复记录(当然要是网速快硬盘大那当我没说。你随意)
    DO自带ubuntu源可能不是很多,无法用apt方式安装,所以下文用比较原始的编译安装方法。以WinRAR 5.21 64位为例
  1. 下载安装包

    wget http://www.rarlab.com/rar/rarlinux-x64-5.2.1.tar.gz
  2. 解压

    tar -xzvf rarlinux-x64-5.2.1.tar.gz
  3. 编译安装

    cd rar
    make
    sudo make install
  4. 压缩文件
    进入文件下载目录(默认为~/Downloads),并执行以下代码

    rar a -v1000m -m3 -rr3% -t 'output'

    linux下的rar的语法和windows下的一样。上面的指令意思是`将当前文件夹下的全部文件以默认压缩比添加到“output.rar”文件下,1000M每个分卷,并设置恢复记录为3%,压缩完成后测试文件。outpu文件不需要加’.rar’后缀
    由于默认Downloads文件夹下只有一个下载文件,所以上面的指令一般情况下也是可以的,但是如果文件夹下文件比较多的情况,可能需要排除或者指定只添加某个文件,所以贴两个可能用处较大的指令,其余的可以自行借助搜索引擎

    1. 只添加文件夹下指定文件。

      rar a -n'你要压缩的文件1' -n'你要压缩的文件2' 'output'
    2. 排除文件夹下的指定文件

      rar a -x'你要排除的文件1' -x'你要排除的文件2' 'output'
    3. 列出压缩包内的文件

      rar l '你要查看的rar文件'

上传文件到百度云

  1. 下载bcloud

    wget https://github.com/LiuLang/bcloud-packages/blob/master/bcloud_3.7.1-3_all.deb
  2. 安装
    由于bcloud需要很多依赖,所以需要强制更新安装依赖环境

    sudo dpkg -i bcloud_3.7.1-3_all.deb
    sudo apt-get -f install
  3. 配置并上传文件。
    回到远程桌面,在左上角的Applications Menu>Internet里找到bcloud,并打开,将弹出的默认设置窗口,即可登录使用。gui使用较简单,过程省略。


到此,整个中转过程完成,之后就是等上传完去DO删droplet之类的事了。很简单,略过。
PS:
DO的机子resize上去后就不可以下来了。所以如果是空间不够的话,请另开一个Droplet,DO以小时计费,并不贵。否则升级了使用完后想降下来的话,就有得折腾了。
PSP:
你如果真的不小心将DO升上去了,想降下来,也可以参考官方这个文档。过程虽然多,但是不难。
How To Downgrade DigitalOcean Droplets
PSV:
DO的droplet即使关机状态下也是计费的。但是你可以做个快照备份(snapshot),然后后面每次需要中转的时候都可以直接从这个快照里快速建立一个新的droplet,不需要每次都重新设置。