CentOS 6.6下实现VPS作中转下载文件并上传到百度云网盘

众所周知,国外VPS 一般都是大流量和大带宽的,那么利用 VPS 的这个特性,我们当然可以把 VPS 用作一个下载中转站,利用 VPS 高速的下载带宽去下载一些冷门或者比较难下载的资源(例如国外资源或者PT资源),然后再利用 VPS 高速的上传带宽把这些资源上传到百度云网盘,最终自己再从百度云网盘把资源下载回本地,速度将会很快。

这个方案如果配合 Transmission 的话,是可以实现把PT站的资源下载到 VPS 上,然后再上传到百度云网盘的。但是首先你要先安装合理的 PT 客户端(可以参考:CentOS下Transmission 2.84一键安装脚本 )。

用 Transmission 的话和正常的PT客户端一样,并不能让你免除下载流量,也不能让你把 Private Torrent 变成 Public Torrent,你自己要有PT账号和下载权限,然后还要遵守PT规则和保持良好分享率。
然后不同的是本方案能够将该已经下载的资源高速上传到自己的百度云网盘中作为后备存储和网盘分流(实现方法是利用 bypy 客户端),这是比较方便的。

关于 bypy,这是一个百度云/百度网盘的 Python客户端,可以用于在 Linux下实现百度云网盘的上传下载等。
如果你系统的 Python版本是 2.7+的 (用python -V 命令查看),直接按照 bypy 官方安装说明 操作即可,如果 Python 版本低于2.7 (比如 CentOS 6.6 的 Python 版本是 2.6.6),继续往下看:

然后我自身的实现环境是 CentOS 6.6 64位的VPS,因为 CentOS 6.6 默认的Python版本是2.6.6版,而本文用到的工具 bypy 是基于Python 2.7+, 3.3+,以及 pip 2.7 的,所以重点在于解决这个问题。

CentOS 6.6 安装 Python 2.7+

  1. 查看 VPS 的 Python 版本:

    1
    python -V

    然后看到显示 Python 版本为2.6.6:

    Python 2.6.6

  2. 下载并解压 Python-2.7+:
    这里我选择的是2.7.3版本,需要其他版本的自行修改下载链接:

    1
    2
    wget http://python.org/ftp/python/2.7.3/Python-2.7.3.tar.bz2
    tar -jxvf Python-2.7.3.tar.bz2
  3. 安装 Python-2.7.3:

    1
    2
    3
    4
    5
    6
    cd Python-2.7.3
    ./configure
    make all
    make install
    make clean
    make distclean
  4. 建立软连接,使系统默认的 python指向 python2.7:

    1
    2
    mv /usr/bin/python /usr/bin/python2.6.6
    ln -s /usr/local/bin/python2.7 /usr/bin/python
  5. 重新查看 Pyhon 版本:

    1
    python -V

    然后看到显示 Python 版本为2.7.3:

    Python 2.7.3

    这样 Python 就算升级到 2.7.3 版本了,下面是解决 yum 的兼容性问题。

  6. 解决 yum 不兼容 Python 2.7 的问题 :
    上一步让系统 Python 软链接指向 Python2.7 版本后,因为 yum 是不兼容 Python 2.7 的,所以 yum 不能正常工作,我们需要指定 yum 的Python版本:

    1
    vi /usr/bin/yum

    将文件头部的

    !/usr/bin/python

    改成

    !/usr/bin/python2.6.6

    然后执行一下 yum 命令,出现命令提示且不报错说明成功。

安装 pip 2.7

我尝试先装扩展源 EPEL 再装 Python Pip:

1
2
yum -y install epel-release
yum clean all

然后发现用 yum -y install python-pip 直接安装 python-pip 时,安装好了却不行,可能是因为 pip 也要安装成2.7的版本;
所以使用下面的方法安装 pip 2.7:

  1. 安装 setuptools,也就是 easy_install:

    1
    2
    3
    4
    wget --no-check-certificate https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz
    tar -xvf setuptools-1.4.2.tar.gz
    cd setuptools-1.4.2
    python2.7 setup.py install

    安装完成后 easy_install 可执行文件路径为 /usr/local/bin/easy_install-2.7

  2. 然后用 easy_install 来安装 pip,直接执行:

    1
    easy_install-2.7 pip

    出现下面的提示说明成功了:

    Processing dependencies for pip
    Finished processing dependencies for pip

安装 Python Requests 库

Python Requests 库是 bypy 的依赖项,所以要安装:

1
pip2.7 install requests

注意这里用的命令是 pip2.7 命令,这个是成功的关键,经过我测试直接用 pip 是不行的。

安装 bypy

  1. 没有 git 的先安装一下 git:

    1
    yum install git
  2. 安装 bypy 并进行百度云 API 授权:

    1
    2
    3
    git clone https://github.com/houtianze/bypy ~/byby/
    cd ~/byby/
    python bypy.py info

    第一次运行时需要授权,并且授权只需一次,一旦成功,以后不会再出现授权提示;
    按照以下步骤来授权百度云账号使用 bypy :

    1. 左键选中用于百度账号授权的一长串 URL,鼠标右键选择复制,然后在本机浏览器打开此链接;
    2. 在浏览器中输入自己的百度云网盘的账号和密码,登陆后提示授予的权限,确定后显示授权码,点击复制按钮复制;
    3. 回到 SSH 客户端,把授权码粘贴进去,然后回车;
    4. 等待片刻,如果提示 Successfully authorized,说明授权成功!
  3. 为了运行方便,把 bypy.py 拷贝至/usr/bin/目录:

    1
    cp ~/byby/bypy.py /usr/bin

以后就可以从任意目录使用 bypy.py 命令了。

上传 VPS 中的文件到百度云盘

切换到要上传的文件目录,如果要把当前目录文件上传到云盘,执行:

1
bypy.py upload -v

-v 用来显示进度。

上传的时候,百度云会计算文件 Hash值,如果是之前已经有人上传过的文件,就会秒传。
其实百度云网盘这么大个资源库,只要不是太新的东西,基本上大部分非原创内容都会秒传的,而如果没有出现秒传,说明你的文件在百度云唯一,属于首发资源哈哈。

bypy的一些其他用法

显示使用帮助和所有命令(英文):

1
bypy.py

更详细的了解某一个命令:

1
bypy.py help <command>

显示在云盘(程序的)根目录下文件列表:

1
bypy.py list

把当前目录同步到云盘:

1
bypy.py syncup

或者:

1
bypy.py upload

把云盘内容同步下来:

1
bypy.py syncdown

或者可以指定下载某一个目录(/ 为根目录):

1
bypy.py downdir /

比较本地当前目录和云盘(程序的)根目录:

1
bypy.py compare

还有一些调试命令:

运行时添加-v参数,会显示进度详情;
运行时添加-d,会显示一些调试信息;
运行时添加-ddd,还会会显示HTTP通讯信息(警告:非常多)。

Over,更多高级用法可以自行发挥!

0%