分类: LINUX
2019-03-11 11:08:20
通过一个命令,就可以在终端上,将文件加密传输到远程服务器,提供对外文件共享的功能。
transfer.sh这是一个我常用的、可以在终端上使用的文件共享服务,可以在某些方面替代sz或者scp命令。通过配置,终端上一个命令就可以将文件加密传输到远程服务器,方便下载。常规使用需要有 命令行的基础,国内虽然访问略慢。在国外的VPS上单线程下载几乎是能跑满带宽的,可以说没限速。配合一些没有 gui 界面的终端命令行简直不能再爽。
只需要把下述代码加入到交互shell的配置文件中即可,我用的是zsh,所以编译 ~/.zshrc,将这段脚本加入进去,写入保存之后执行"source ~/.zshrc"刷新一下。
transfer() { if [ $# -eq 0 ]; then echo -e "No arguments specified. Usage:\necho transfer /tmp/test.md\ncat /tmp/test.md | transfer test.md"; return 1; fi tmpfile=$( mktemp -t transferXXX ); if tty -s; then basefile=$(basename "$1" | sed -e 's/[^a-zA-Z0-9._-]/-/g'); curl --progress-bar --upload-file "$1" "" >> $tmpfile; else curl --progress-bar --upload-file "-" "" >> $tmpfile ; fi; cat $tmpfile; rm -f $tmpfile; }
使用也非常简单,对需要上传分享的文件执行"transfer"命令就可以了,比如当前目录下有一个BDW.sh的脚本,执行"transfer BDW.sh "
文件上传成功之后会返回一个链接地址,就是当前上传的文件网络地址,文件默认保存 14 天,之后自动删除。
这一套程序也是开源的,也可以找到服务器端,自行部署到自己的服务器上。