奶牛快传,取代你的scp和ftp

咱们搞生物信息学数据分析的小伙伴通常是接触过服务器,但是呢,很少是物理空间的接触,我们的测序数据上传到服务器通常是使用ftp软件,比如工具FileZilla 和winscp这样的,或者使用scp命令。绝大部分情况下没有问题,怕的就是自己电脑跟服务器的通讯网络太差,而且有时候端口也不一定是22或者21。
如果是scp 在命令行进行文件传输,代码如下 :

scp -oPort=xx user@120.77.173.108:/path/filename /home/folder

可以看到,首先太冗长了,其次呢,传输速度确实有点慢,不到1M的传输速度,我的50T的raw fastq文件,起码需要 50X1024X1024/3600/24 = 606 天!!!

FUSCCTNBC001.TT_WES_R1.fastq.gz 0% 5648KB 896.9KB/s 1:39:07 ETA

而且每一次都需要在终端选定好服务器目录或是本地电脑的目录,另外scp 命令还需要再次验证登陆信息,又要重新输入一次密码,显得比较麻烦,因此想尝试一下其他方法。
在Jimmy老师的指导下,有一个 奶牛快传 的工具可以帮助我们跟服务器进行文件交互。

下载 奶牛快传

https://github.com/Mikubill/cowtransfer-uploader/releases
直接在github 上找到奶牛快传linux 的发行版本:
image.png
下载一下:

wget https://github.com/Mikubill/cowtransfer-uploader/releases/download/v0.4.16/cowtransfer-uploader_0.4.16_linux_amd64.tar.gz

如果你有curl 命令,可以直接使用:

curl -sL https://git.io/cowtransfer | sh

接着解压后就可以使用了:

tar -zxvf cowtransfer-uploader_0.4.16_linux_amd64.tar.gz
$ ls
cowtransfer-uploader cowtransfer-uploader_0.4.16_linux_amd64.tar.gz

因为它是一个二进制可执行的工具,所以超级简单啦。

使用奶牛快传

为了方便调用,我们将其软链接到bin 目录内,先进入bin 目录:

$ cd ~/0.bin/
$ ln -s ~/3.biosoft/other_soft/cowtransfer-uploader .
$ ls -lh
total 0
lrwxrwxrwx 1 yzpeng yzpeng 54 121 08:36 cowtransfer-uploader -> /home/yzpeng/3.biosoft/other_soft/cowtransfer-uploader

这个步骤并不是必须的哦,如果你Linux能力弱爆了,放弃这个步骤也可以哈。
如果你还没有bin 目录,可以用下面的代码添加到环境:

echo 'export PATH=~/0.bin:$PATH' >> ~/.bashrc
# 激活一下
$source ~/.bashrc

再次强调,添加到bin目录,激活环境变量并不是必须的,你可以使用全路径调用它的。
就可以直接使用了:

$ cowtransfer-uploader 
missing file(s) or url(s)
Usage:
cowtransfer-uploader [options] file(s)/url(s)
Options:
-c, --cookie string Your User cookie (optional)
 -p, --parallel int Parallel task count (default 4)
 -b, --block int Upload Block Size (default 262144)
 -t, --timeout int Request retry/timeout limit (in second, default 10)
 -o, --output string File download dictionary/name (default ".")
 -s, --single Single Upload Mode
 -v, --verbose Verbose Mode
 -k, --keep Keep program active when upload finish
 --hash Check Hash after block upload (might slower)
 --password string Set password
 --version Print version and exit
 --silent Enable silent mode

也可以使用全路径调用哦。

上传下载哈

上传

在你的WIN 或者MAC 电脑,都可以使用以下命令上传文件:

# 上传文件
cowtransfer-uploader test.txt
# 上传文件夹
cowtransfer-uploader /data
# 多线程上传
cowtransfer-uploader -p 4 test.txt
# 开启校验功能
cowtransfer-uploader --hash test.txt
# 设置下载密码
cowtransfer-uploader --password=123456 file
# 程序默认会为每一个文件生成一个链接。如果想一个链接上传所有文件,可以使用选项-s开启Single Upload Mode: 
cowtransfer-uploader -s /data

尝试传输一个文件:

-rw-rw-r-- 1 yzpeng yzpeng 87M 1月 21 08:42 a.fastq
$ cowtransfer-uploader a.fastq 
Destination: https://cowtransfer.com/s/37d3ce5e235e44
Local: a.fastq
27.50 MiB / 86.41 MiB [------------>_________________________] 31.83% 6.42 MiB p/s ETA 9s

6 Mb/s ,快了不少!之前需要600天,现在100天就搞定了,完美!
奶牛快传会为每个上传的文件生成一个下载码:

Local: b.fastq
86.41 MiB / 86.41 MiB [----------------------------------------] 100.00% 4.61 MiB p/s 19s
Short Download Code: 699344

下载

https://cowtransfer.com/s/
本地电脑访问奶牛快传的官方,输入文件传输后获取的密码就可以下载了:
image.png
如果是命令行,就直接复制下部的链接,就可以直接下载:

$ cowtransfer-uploader https://cowtransfer.com/s/853f366fe3504d
Remote: https://cowtransfer.com/s/853f366fe3504d
File save to: FUSCCTNBC_Mutations_V15.1.txt
14.51 MiB / 15.18 MiB [------------------------------------>_] 95.62% 1.71 MiB p/s ETA 0s
结合云盘功能使用

由于奶牛互传非会员单次传输的上限为2GB,因此对于某些大文件的传输,可能需要通过使用、升级会员的方式获得(当然也可以继续用scp了):
image.png
在WIN 或者MAC 的本地电脑,可以直接通过下面的链接注册:
https://cowtransfer.com/?lx_guid=1bc7bae1-276c-4de5-a2ad-1f1209bdd95c
登陆以后,便可以查看自己的云盘:
免费版只有10GB 容量。
image.png
首先在登陆后的奶牛快传界面,选择开发者选项或检查:
image.png
接着选择application-cookies-remember_me:
image.png
复制remember me 中的值,上传时添加参数cookie:

cowtransfer-uploader -cookie="remember-me=...;" test.txt

接着,便可以在本地看到上传记录了:
image.png
由于是使用自己的账户上传,因此可以将其保存到云盘,或者直接下载。

ps

这个公司的界面有时候会有些花里胡哨的广告/宣传:
image.png
创始人的格言也很有意思:
image.png

Comments are closed.