sxyz
集成多个后端的文件外链生成工具。
可以用来做什么?
这个工具可以通过统一的方式将你的文件上传到各种平台上,并生成外链。可以用作图床等。
目前支持的后端
- 阿里OSS
- 七牛对象存储
- gitee
环境需求
- Python 3.5+
用法
- 使用pip安装
pip install sxyz
- 配置后端
工具支持多个上传后端,每个后端有不同的配置,根据自己的情况选择使用。
首先执行sxyz config -d > sxyz.json
生成默认的配置文件;然后编辑这个文件以配置你想要使用的后端。
- 阿里OSS
进入阿里OSS的管理界面,选择一个Bucket,就可以看到所需的信息。
{
"oss": {
# bucket的外网域名,可以使用绑定的域名;如果不使用自己的域名,可以不填,之后会自动生成
"domain": null,
# bucket的名字
"bktname": null,
# bucket的地域节点(外网访问)
"endpoint": null,
# 阿里云的access_key,鼠标放在自己的头像上面可以看到
"access_key": null,
# 阿里云的secret,和access_key在一起
"secret": null,
# 是否使用https,可在bucket概览信息中查看域名是否支持https
"https": false
}
}
- 七牛对象存储
类似阿里OSS,进入七牛对象存储的管理界面,获取以下字段的值。
{
"qiniu": {
# 域名
"domain": null,
# bucket的名字
"bktname": null,
# 七牛云的access_key,在密钥管理处可以找到
"access_key": null,
# 七牛云的secret_key,和access_key在一起
"secret": null,
# 是否使用https
"https": false
}
}
你也可以通过
python sxyz.py config -k KEY -v VALUE
子命令来配置各个字段。
对于通用配置,KEY就是配置项的名字;对于各个模块的配置,要以模块名:
作为前缀。
比如,要配置默认的后端,也就是通用配置的default_backend
项,那么使用-k default_backend -v oss
的组合;又比如,要配置oss的domain项,则使用-k oss:domain -v DOMAIN
。
- 上传你的第一个文件
sxyz upload YOUR_FILE --backend gitee --init-backend
可以使用--backend选项指定不同的后端,上面的命令使用了gitee。
默认只支持几种常见的图片格式,要增加其他格式,需要在sxyz.json
中配置valid_filetype
项,内容为文件的mime字符串。在Linux可以使用xdg-mime query filetype YOUR_FILE
获取。
oss和qiniu后端支持定时过期,过期后自动删除,使用--expired_days
选项指定,过期时间可选项由配置文件中expired_days_options
项指定。为0表示永不过期。
需要注意的是,有的后端在第一次上传的时候需要做一些初始化(目前只有阿里OSS),比如设置文件过期规则等。所以在第一次上传的时候记得加上--init-backend
选项。