咱们搞生物信息学数据分析的小伙伴通常是接触过服务器,但是呢,很少是物理空间的接触,我们的测序数据上传到服务器通常是使用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 的发行版本:
下载一下:
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 1月 21 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/
本地电脑访问奶牛快传的官方,输入文件传输后获取的密码就可以下载了:
如果是命令行,就直接复制下部的链接,就可以直接下载:
$ 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了):
在WIN 或者MAC 的本地电脑,可以直接通过下面的链接注册:
https://cowtransfer.com/?lx_guid=1bc7bae1-276c-4de5-a2ad-1f1209bdd95c
登陆以后,便可以查看自己的云盘:
免费版只有10GB 容量。
首先在登陆后的奶牛快传界面,选择开发者选项或检查:
接着选择application-cookies-remember_me:
复制remember me 中的值,上传时添加参数cookie:
cowtransfer-uploader -cookie="remember-me=...;" test.txt
接着,便可以在本地看到上传记录了:
由于是使用自己的账户上传,因此可以将其保存到云盘,或者直接下载。
ps
这个公司的界面有时候会有些花里胡哨的广告/宣传:
创始人的格言也很有意思: