AUXPI:基于API的简单图床,支持搜狗图床/新浪图床/SMMS图床上传
功能简介
支持 web 上传图片
支持 API 上传图片
支持 搜狗图床,新浪图床,SMMS 图床 的图片上传
API 可以设置 token 可以私用,也可以选择关闭 API,只保留 web 上传
可以设置是否开启新浪图床上传(因为新浪图床需要登录自己的账号)
可以设置允许上传的图片最大大小 和 一次性上传的最多张数
简单部署即可使用,从 Release 中获取,开箱即用
轻量级不使用任何数据库
Go 语言编写速度加成(滑稽)
项目地址:https://github.com/aimerforreimu/AUXPI
项目截图
安装
以linux宝塔面板为例,需要有一个 Nginx或者Caddy 就够了,其它的都不需要(当前版本不需要)
接下来请按照将下面的命令输入到你的服务器终端中
#新建文件夹用来存放auxpi文件
cd /root
mkdir auxpi && cd auxpi
wget https://github.com/aimerforreimu/AUXPI/releases/download/1.01/auxpi-Linux-64-1.01.tar.gz
#解压文件
tar zxvf auxpi*.tar.gz && rm -rf auxpi*.tar.gz
接下来需要编辑一下 conf/app.conf
直接在宝塔中进入 /root/auxpi/conf 目录,找到 app.conf 然后编辑即可,编辑内容请参考下面
appname = auxpi #程序的名称
httpport = 2333 #程序所运行的端口
runmode = pro #程序的运行环境dev为开发模式pro为正常模式,建议pro模式
enablexsrf = true #是否开启 CSRF 攻击防御(必须开启)
xsrfkey = ads093jmfas93j*3sd-212df923 #CSRF key这里请随意填写字符串
xsrfexpire = 3600 #CSRF token过期时间
修改完成以后,打开服务器的终端,然后输入
cd /root/auxpi
#赋予运行权限
chmod u+x auxpi
#运行程序
./auxpi
在程序第一次运行的时候会在 conf/ 目录下生成 install.lock 和 siteConfig.json 如果删除 install.lock 的话 siteConfig.json 就会被初始化为最初的值,所以请不要轻易的删除 install.lock
等待没有东西输出以后,然后按住 Ctrl+C 退出程序,在宝塔页面打开conf/siteConfig.json 会得到以下内容,如果是一行的话,请复制一下,然后百度一下 json 格式化,将其格式化以后方便修改。
{
"site_name": "AuXpI 图床", #站点名称
"site_footer": "你好世界", #footer输出的内容
"site_url": "/", # 站点 url
"site_upload_max_number": 10,#一次性最多可以上传多少张图片
"site_up_load_max_size": 5,#最大允许上传的图片大小,单位MB
"open_api_up_load": true,#是否开启API上传
"api_token": "",#API token 空为不设置
"api_default": "SouGou", #API默认上传上去的图床
"cache_config": true, #是否对配置进行缓存(建议开启)
"site_upload_way": {
"local_store": false, #是否开启本地储存(此功能等待开发)
"open_sina_pic_store": false, #是否启用新浪图床
"sina_account": {
"user_name": "", #若开启微博图床,请填写您的微博登录用户名
"pass_word": "", #填写您的微博登录密码
"reset_sina_cookie_time": 3600, #微博cookie缓存时间 s
"defult_pic_size": "large" #默认返回的微博图片的大小
}
}
}
请按自己的想法进行配置,配置完成以后进行保存。保存以后再服务器终端输入下面的命令
#让其在后台运行
screen -S auxpi ./auxpi
或
nohup ./auxpi
然后就可以关掉服务器终端啦,接下来就是反代绑定域名,在绑定域名之前,你可以先用宝塔的一键 SSL 申请一个 SSL ,然后按照下图进行操作,注意不要漏掉 :
号
反代完成以后我们简单的删除一下不需要的东西到下面的样子即可(一般不用改)
server
{
listen 80;
listen 443 ssl http2;
server_name 你的域名;
#HTTP_TO_HTTPS_START
if ($server_port !~ 443){
rewrite ^(/.*)$ https://$host$1 permanent;
}
#HTTP_TO_HTTPS_END
ssl_certificate /etc/letsencrypt/live/你的域名/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/你的域名/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
error_page 497 https://$host$request_uri;
#SSL-END
#ERROR-PAGE-START 错误页配置,可以注释、删除或修改
error_page 404 /404.html;
error_page 502 /502.html;
#ERROR-PAGE-END
location /
{
proxy_pass http://你的 ip:你的端口;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;
}
location ~ .*\.(html|htm|png|gif|jpeg|jpg|bmp|js|css)?$
{
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_pass http://你的ip:你的端口;
}
#禁止访问的文件或目录
location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)
{
return 404;
}
#一键申请SSL证书验证目录相关设置
location ~ \.well-known{
allow all;
}
access_log /www/wwwlogs/你的域名.log;
error_log /www/wwwlogs/你的域名.log;
}
按照自己的站点进行修改即可,然后访问 你的域名你就会发现,已经可以访问啦
其中需要说明的是
reset_sina_cookie_time 这一项最好不要更改,更改的话不要让其大于 3600s
defult_pic_size 可选的参数为
square
thumb150
orj360
orj480
mw690
mw1024
mw2048
small
bmiddle
large
请根据自己的需要进行配置,配置以后需要重新启动程序才能生效
从源码中构建
如果项目地址中没有自己对应的版本,可以自行编译
使用 Bee 工具运行程序
cd $GOPATH/src
git clone git@github.com:aimerforreimu/AUXPI.git
cd AUXPI/
bee run auxpi
交叉编译
#Mac/Windows环境编译成 Linux 程序
GOOS=linux GOARCH=amd64 bee pack
#Mac/Linux 环境编译 Windows 程序
GOOS=windows GOARCH=amd64 bee pack
#Windows/Linux 编译 Mac 程序
GOOS=darwin GOARCH=amd64 bee pack
更多交叉编译请参考 Go 交叉编译