- 简介
最近面临一次系统跨AWS迁移,迁移过程中,少不了有文件进行传输,一般会使用scp,但是这个又牵扯到密码验证,或者key文件验证,而且scp在长距离传输的过程中速度会非常的慢;如果采用rsync,也还行,但是多少有点不太心甘情愿,而且还得安装rsync;是否可以走http协议uploadfile呢? 刚好最近看到caddy这个小巧的http服务器,而且居然发现了支持upload插件,于是小测了一下。
下载文件
http://ojv12llai.bkt.clouddn.com/uploads/20170328135542.gz
如果从官网下载,地址 https://caddyserver.com/download, 可以选择不同的插件, 插件越多,功能也会越多,但是文件体积也会越大。
解压后,把caddy 文件放到 /bin/下面,直接调用就不用输入全路径了.
配置文件
/etc/caddy.conf
:2016 {
root /opt/caddy
upload /upload {
to /opt/caddy/upload
yes_without_tls # 不写这个,貌似必须使用https了
}
filemanager /uploadmanager {
show /opt/caddy/upload
allow_new true
allow_edit true
allow_commands true
allow_command git
block_command command
block dotfiles
}
}
上传测试
# 使用如下的命令会将本地的/etc/passwd传上去,但是注意,
# 1. 文件名会覆盖哦
# 2. tar个包,一来增加速度,二来只能传输文件
# 3. upload后边的/不跟的话,会302转向的
# 4. -F后边的data貌似跟啥字母都行,没有实际意义
curl -F data=@/etc/passwd http://116.251.211.183:2016/upload/