最近想试试自己搭建图床,虽然免费的又拍云够用了,但对象存储和图床还是有区别的,用起来有些复杂,所以打算试试兰空图床

服务器

想搭建图床自然是需要服务器了,我选择的是雨云-新一代云服务提供商的NAT网络服务器,因为没有独立的IP,所以很实惠。而且带宽大,并且支持试用

  1. 云产品➡️立即购买

    image-20241106153437715

  2. 选择江苏宿迁➡️KVM入门版➡️Debian11系统➡️NAT共享IP模式

    image-20241106153543321

    最好还是上标配版,响应速度更快,我这里lsky和mysql一共占用近700m,1g内存应该会一直处于高占用状态,但应该勉强能用

    image-20241106153638618

  3. 进入控制台

    image-20241106154109120

  4. 复制远程连接地址,用windterm或xshell之类的ssh工具连接服务器

    image-20241106154444710

    image-20241106154512815

  5. 输入用户名密码连接后显示此画面即可

    image-20241106154617064

  6. 使用windterm的话建议在会话设置处设置发送空包以保持会话活动,否则时不时会发现输入无反应,那就是断连了😂

    image-20241106154737596

安装docker

这个随便找找教程就行,或者看我之前的文章云服务器部署 ALAS—— 解放双手游玩碧蓝航线 | 火柴人儿的小站,其中有Debian11安装docker的部分

安装数据库

Docker部署MySQL 8.3.0(保姆级图文教程)

根据此教程使用docker安装mysql数据库,这里直接给操作,按着此步骤走就行

  1. 拉取mysql:8.3.0镜像

    1
    docker pull mysql:8.3.0
  2. 创建挂载目录

    1
    mkdir -p  /home/mysql/{conf,data,log}
  3. 创建并编辑配置文件

    1
    2
    cd /home/mysql/conf
    vim my.cnf

    i进行输入,按shift+insert粘贴

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    [client]
    #设置客户端默认字符集utf8mb4
    default-character-set=utf8mb4
    [mysql]
    #设置服务器默认字符集为utf8mb4
    default-character-set=utf8mb4
    [mysqld]
    #配置服务器的服务号,具备日后需要集群做准备
    server-id = 1
    #开启MySQL数据库的二进制日志,用于记录用户对数据库的操作SQL语句,具备日后需要集群做准备
    log-bin=mysql-bin
    #设置清理超过30天的日志,以免日志堆积造过多成服务器内存爆满。2592000秒等于30天的秒数
    binlog_expire_logs_seconds = 2592000
    #解决MySQL8.0版本GROUP BY问题
    sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'
    #允许最大的连接数
    max_connections=1000
    # 禁用符号链接以防止各种安全风险
    symbolic-links=0
    # 设置东八区时区
    default-time_zone = '+8:00'

    esc退出编辑,:wq保存并退出

  4. 创建并运行mysql容器

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    docker run \
    -p 3306:3306 \
    --restart=always \
    --name mysql \
    --privileged=true \
    -v /home/mysql/log:/var/log/mysql \
    -v /home/mysql/data:/var/lib/mysql \
    -v /home/mysql/conf/my.cnf:/etc/mysql/my.cnf \
    -e MYSQL_ROOT_PASSWORD=yourpassword \
    -d mysql:8.3.0

    image-20241106141950353

  5. 添加NAT端口映射规则

    在雨云控制台中找到NAT端口映射,点击新建规则

    image-20241106155541498

    image-20241106142107269

  6. 使用navicat测试连接

    image-20241106142028484

  7. 创建数据库用于存储lsky的数据

    image-20241106142818924

部署兰空图床

使用的是HalcyonAzure提供的Docker镜像

  1. 创建并运行兰空图床容器,没有镜像会自动拉取镜像,这里将lsky-pro容器的8089端口映射到服务器的10800端口

    1
    2
    3
    4
    5
    6
    7
    docker run -d \
    --name lsky-pro \
    --restart unless-stopped \
    -p 10800:8089 \
    -v $PWD/lsky:/var/www/html \
    -e WEB_PORT=8089 \
    halcyonazure/lsky-pro-docker:latest

    image-20241106141411133

    这里如果拉取失败的话则需要重新换源,从网上找几个镜像源,换着试。换源操作就是我上面发的我的文章中关于安装docker部分的8、9、10三步,我的配置如下

    1
    2
    3
    {  
    "registry-mirrors": ["https://docker.1panel.live","https://dockerpull.comhttps://dockerproxy.cn", "https://docker.m.daocloud.io", "https://docker.m.daocloud.io"]
    }

    如果还是不行,试试这个人的镜像hellodk34,不过他的镜像需要一同配置mysql,与我的需求不符,这里留作备用方案,具体操作点击链接前往github查看

  2. 添加NAT端口映射

    image-20241106142307160

  3. 浏览器访问IP:11800

    image-20241106142604149

  4. 点击下一步,配置数据库和管理员账号

    image-20241106142921631

  5. 安装完成

    image-20241106142939372

  6. 首页

    image-20241106142952551

  7. 登陆管理员账号

    image-20241106143009587

    image-20241106155654082

  8. 至此,已部署完成

兰空图床配置邮箱验证

自用的话就没必要配置这个了,可不设置

  1. 系统设置

    image-20241106144134695

    这里开启邮箱验证的话,下面的邮箱配置要配置好

    image-20241106144207439

    我用的是139的邮箱,根据邮箱中的安全设置配置即可,用户名为邮箱,密码为授权码

    image-20241106144349718

  2. 注册新账号用于测试

    image-20241106144813580

  3. 登录

    image-20241106145039514

  4. 这时,邮箱中就会出现验证邮件,点击链接验证即可

    image-20241106145018398

  5. 验证通过后就没有红色提示了

    image-20241106145119402

配合PicGo实现批量上传

  1. 使用Apifox或Postman请求一个token,新建一个快捷请求

    image-20241106150416389

  2. 请求方式改为post,Header添加参数Accept

    image-20241106150654934

  3. Body按要求添加参数email和password

    image-20241106150758804

    image-20241106151250429

  4. 发送请求,得到token,保存好,这个token只会在这里出现一次,以后再获取只会获得不同的token

    image-20241106151003204

  5. 新建一个相册,按F12,找到网络,然后点击左上角的相册,查看相册id,这里相册id为1

    image-20241106145842026

  6. 打开picgo,安装自定义Web图床插件

    image-20241106151448031

  7. 安装完成后,在图床设置中会出现自定义Web图床选项

    image-20241106151727347

  8. 点击+号,新建配置

    image-20241106151822919

    其他的都照着填就行,就自定义请求头需要特殊说一下,之前获取token时,是数字|字符串的格式,这里的Authorization只需要后面的字符串,且前面要拼上Bearer ,整体格式为

    1
    {"Authorization": "Bearer Qxxxxxxxxxxxxxxxxxxxxxxxxxx"}

    自定义body用于指定上传的相册,若不填写的话,你应该在设置中将默认上传相册设置好,否则应该无法上传成功

    image-20241106152136782

  9. 点击确定保存配置,在上传区中选择刚才添加的雨云-兰空图床

    image-20241106152234809

  10. 测试

    image-20241106152339701

    上传成功!

    image-20241106152937603

    使用外链打开

    image-20241106153158746