一个伪linux粉丝的blog

  1. 首页
  2. network
  3. 正文

file share with curl

5月 3, 2022 306点热度 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
[[email protected] 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
最后更新:5月 19, 2022

wanjie

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

点赞
< 上一篇
下一篇 >

文章评论

取消回复

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据。

归档
分类
  • network / 324篇
  • Uncategorized / 114篇
  • unix/linux / 113篇
  • 业界资讯 / 38篇
  • 公司杂事 / 11篇
  • 数码影像 / 12篇
  • 美剧 / 3篇
  • 美图共赏 / 20篇
  • 英语学习 / 3篇
标签聚合
Google Voice dreamhost gitlab kernel 泰国 Google ipv6 纵贯线 CentOS Nginx VPS kubectl nexus ldap 日全食 黑莓8700 k8s ssh wget Google Adwords d90 邮件归档 天翼live 网站运营 虚拟主机 google-chrome docker Ubuntu 职责 刷机

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

Theme Kratos Made By Seaton Jiang