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 交叉编译

Last modification:November 18th, 2018 at 09:19 pm
If you think my article is useful to you, please feel free to appreciate

Leave a Comment