一个伪linux粉丝的blog

  1. 首页
  2. network
  3. 正文

file share with curl

3 5 月, 2022 896点热度 0人点赞 0条评论

前言:

有时会有一些 linux 服务器命令行下传文件日志,过渡文件给自己或他人的临时的需求。

于是找到了2个网站,其实两者都用了好几年了 https://transfer.sh/ 和 https://keep.sh/ ,前者transfer.sh 还一度停服,寻找替代品的过程中找到了后者。

用法非常简单: curl -T abc.txt https://transfer.sh/ 或  curl -T abc.txt https://free.keep.sh/  , 会生成一个临时连接,然后你可以通过链接下载,桌面浏览器也行,curl,wget都可以,文件默认保留24小时。直到前几天,有人说,把日志传到别人的服务器上会不会不好,于是这个五一假期自建了一个,源码是 transfer.sh 提供的,感谢!

部署过程

1,代码地址

代码地址 https://github.com/dutchcoders/transfer.sh/

最新 1.3.1 版是 2021.12.16 发布的,直接下载地址如下

https://github.com/dutchcoders/transfer.sh/releases/download/v1.3.1/transfersh-v1.3.1-linux-amd64.tar.gz

2,跑docker容器

readme 文档快速一拉,看到了有 docker ,第一个想到的就是先拿docker跑起来看看效果。

docker run --publish 8080:8080 dutchcoders/transfer.sh:latest --provider local --basedir /tmp/

谁能想到上面这个命令竟然是错误的,没有映射目录关系,测试上传时会报错,类似如下 0open /tmp/transfer-2017641841: no such file or directory

正确的命令看这里 https://github.com/dutchcoders/transfer.sh/issues/462

docker run -d --restart always --publish 8080:8080 -v "/tmp:/tmp" dutchcoders/transfer.sh:latest --provider local --basedir=/tmp

其他参数好像和docker这边不匹配,不研究了。

3,用 go 跑程序

默认用法

go run main.go --provider=local --listener :8080 --temp-path=/tmp/ --basedir=/tmp/

传文件,当然得https咯,加上证书和空间提供商的玩法参数如下:  --provider、 --listener :80 、--tls-listener :443 、--force-https 、--tls-cert-file、--tls-private-key

前几个参数一个不能少,否则有各种坑在等着你,其他参数看官网或者帮助。

最开始网站走了Cloudflare, 发现传大文件有问题,提示 413 Request Entity Too Large,原来 cf 免费用户最高 100mb,开放了几天后还是舍弃大文件,毕竟日志压缩后一般没那么大。

如果有空看到这里,问我自建站的地址,请看图1即可  :smile:

 

 4,内网服务版

直接下载 平台对应的可执行文件 ,如这个 https://github.com/dutchcoders/transfer.sh/releases/download/v1.3.1/transfersh-v1.3.1-linux-amd64.tar.gz

解压发现是一个可执行的包,这样问题简单多了。

直接跑服务吧, 内网过渡一下,保存时间1小时,至于你问为啥这么干,scp不香么,哎,jumpserver 服务器间传文件的痛苦你会慢慢知道的,sz、rz也不是无需改造直接能用,只有curl是直接可得到的东东。

cat /usr/lib/systemd/system/transfer.service
[Unit]
Description=transfer service
After=network.target syslog.target
Wants=network.target
[Service]
Type=simple
ExecStart=/root/transfer/transfersh-v1.3.1-linux-amd64 --listener :80 --provider=local -temp-path=/tmp/ --basedir=/tmp/ --purge-interval=1 --log=/var/log/transfer.log
[Install]
WantedBy=multi-user.target

然后就是启用服务并启动
# systemctl enable transfer.service
Created symlink from /etc/systemd/system/multi-user.target.wants/transfer.service to /usr/lib/systemd/system/transfer.service.
# systemctl start transfer.service
[root@dce-10-29-8-82 transfer]# systemctl status transfer.service
● transfer.service - transfer service
Loaded: loaded (/usr/lib/systemd/system/transfer.service; enabled; vendor preset: disabled)
Active: active (running) since 四 2022-05-19 20:52:10 CST; 7s ago
Main PID: 2672540 (transfersh-v1.3)
Tasks: 9
Memory: 15.8M
CGroup: /system.slice/transfer.service
└─2672540 /root/transfer/transfersh-v1.3.1-linux-amd64 --listener :80 --provider=local -temp-path=/tmp/ --basedir=/tmp/ -...
5月 19 20:52:10 dce-10-29-8-82 systemd[1]: Started transfer service.

内网测试一下速度吧
上行,得到一个 1小时有效的链接 http://t.ats.io/43xoOW/buodo.tar.gz

下行,1小时内下载有效,速度还行,至少不用装工具。

相关文章:

  1. SSHTunnel Provides a Secure Internet Connection for Your Android
  2. bwbar
  3. Amazon EC2
  4. Azure cni No available addresses
标签: transfer transfer.sh
最后更新:19 5 月, 2022

wanjie

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

This site uses Akismet to reduce spam. Learn how your comment data is processed.

归档
分类
  • network / 332篇
  • Uncategorized / 116篇
  • unix/linux / 121篇
  • 业界资讯 / 38篇
  • 公司杂事 / 11篇
  • 数码影像 / 12篇
  • 美剧 / 3篇
  • 美图共赏 / 21篇
  • 英语学习 / 3篇
标签聚合
nexus kernel ssh dreamhost空间 debian k8s 天翼live 网站运营 docker google-chrome 浏览器 deepseek jira dreamhost ldap 邮件归档 虚拟主机 gitlab postgres Google Voice VPS d90 Nginx kubectl Ubuntu openssl wget squid 泰国 Google

COPYRIGHT © 2008-2025 wanjie.info. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang