VPS搭建Lsky Pro自建图床:图片外链、相册管理和API上传教程

Docker部署、上传外链获取、相册管理、API上传和Nginx HTTPS反代
发布于
1

写博客要配图、发文章要外链、分享截图不想用第三方图床怕图片丢失——在VPS上搭个Lsky Pro图床,图片存在你自己的服务器上,上传自动生成外链,还能分类管理相册。

Docker部署Lsky Pro

mkdir lsky && cd lsky
nano docker-compose.yml
version: '3'
services:
  lsky:
    image: halcyonazure/lsky-pro:latest
    restart: always
    ports:
      - "8089:80"
    volumes:
      - ./data:/var/www/html
    environment:
      - WEB_PORT=80
docker compose up -d
# 访问 http://VPS_IP:8089 进安装向导
# 数据库选SQLite即可

安装时创建管理员账号,完成后登录进入后台管理界面。雨云入门VPS月付几块就能跑图床——只存图片不吃CPU。优惠码 admin01 首月五折。存储空间按需——日常博客配图每月500MB够用,大量图片建议20GB以上。

基本使用:上传和获取外链

登录后点”上传图片”→拖图片进去或点选文件→上传。上传完成后每张图片下面会显示多种外链格式——URL(直链)、Markdown(![]()格式,适合写博客)、HTML(标签)。复制需要的格式粘贴到你的博客或网站里,图片就显示了。

Lsky Pro会自动按日期创建文件夹、用随机字符串重命名图片文件名——避免文件名泄露隐私。

创建相册和分类管理

后台→”相册”→新建相册→起名后把相关图片移进去。可以设相册的可见性——公开(所有人能看)、隐藏(只有自己能看)、密码访问(访客需要密码)。

团队使用:创建不同角色账号——管理员管理一切、普通用户只能上传和管理自己的图片、访客只能看公开相册。适合小团队共用一个图床。

API上传——代码里自动传图

如果你用Python脚本自动截图然后上传到图床,或者博客程序自动上传配图:

# 先在Lsky后台→系统设置→API→生成Token
import requests

token = "你的API Token"
url = "https://img.你的域名.com/api/v1/upload"

with open("screenshot.png", "rb") as f:
    resp = requests.post(url,
        headers={"Authorization": f"Bearer {token}"},
        files={"file": f}
    )
    data = resp.json()
    if data["status"]:
        print("上传成功:", data["data"]["links"]["url"])

返回的JSON里包含各种格式的链接,直接用。

配置HTTPS和域名

apt install nginx certbot python3-certbot-nginx -y
nano /etc/nginx/sites-available/lsky

server {
    listen 80;
    server_name img.你的域名.com;
    client_max_body_size 20M;  # 上传限制20MB
    location / {
        proxy_pass http://127.0.0.1:8089;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

ln -s /etc/nginx/sites-available/lsky /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx
certbot --nginx -d img.你的域名.com

备份策略

图床上的图片是你自己的,丢了就没有了。备份整个data目录+数据库:

#!/bin/bash
cd /path/to/lsky
tar -czf lsky-backup-$(date +%Y%m%d).tar.gz data/
coscmd upload lsky-backup-*.tar.gz /backup/lsky/

加到crontab每天自动备份并同步到对象存储。

常见问题

上传提示”文件太大”?

三处限制都要改:Lsky后台→系统设置→上传大小限制;Nginx配置client_max_body_size;PHP的upload_max_filesize(在docker-compose里加PHP_UPLOAD_LIMIT=20M)。

图床被滥用怎么办?

后台开启”上传需要登录”、关闭公开上传功能;设单用户每日上传数量限制;防火墙限制API请求频率;定期审查公开相册。

和Chevereto、PicGo有什么区别?

Chevereto功能更全但吃资源且部分功能收费。PicGo是上传客户端不是服务器。Lsky Pro免费开源、功能正好、SQLite零配置跑起来最快。

本文由作者原创/授权发布于极跃圈(jiyueip.com)未经许可,禁止转载。题图来自Unsplash,基于CC0协议。

声明:极跃圈(JIYUEIP.com)内网友所发表的所有内容及言论仅代表其本人,并不反映任何极跃圈(JIYUEIP.com)之意见及观点。

0 讨论
热门最新
总结
暂无总结
0 / 600