为了博客更好更快的加载,同时减少vercel的流量消耗,图床也是我一直在寻找、追求好用的一个切入点。

什么是图床?
1
2
3
4
5
6
7
8
9
图床是一种网络服务,它提供了专门用于存储和托管用户上传的图片文件的服务器空间,并且通常允许用户通过获取图片链接的方式将图片嵌入到其他网站或应用中。

通过将图片上传到图床,用户可以生成一个链接,其他人可以通过这个链接查看或下载该图片。图床通常具有免费和付费版本,提供不同的存储空间和功能选项。

使用图床的好处是可以方便地将图片分享到各种社交媒体平台、论坛或其他网站上,而无需担心文件大小限制或上传方式的限制。此外,部分图床还提供额外的功能,如图片编辑工具、批量上传、密码保护等,以满足用户的特定需求。

常见的图床服务有免费和付费两种类型,根据服务质量、存储空间、流量限制以及功能丰富程度各有不同。例如,一些社交媒体平台如微博、B站也可以作为非正式的图床使用,用户上传图片后可以通过修改链接格式引用到其他地方。

在此值得一提的是,使用微博、B站、QQ等类似平台可能存在较高的图片丢失风险,因此非必要并不建议使用这些平台作为图床
为什么要用图床?
  • 减轻主服务器负载:对于个人网站、博客、论坛或其他Web应用程序而言,如果直接在自己的服务器上托管大量图片,可能会增加服务器负担和带宽消耗。通过使用图床,可以将图片资源分离出来,确保文本内容所在的服务器响应更快
  • 提供稳定快速的图片访问:图床服务商通常会优化图片加载速度,有的还会配备CDN(内容分发网络)来提高全球范围内的访问速度
  • 方便图片分享和管理:用户无需关心图片存储的技术细节,只需上传图片至图床,即可获取图片链接,然后在任何支持嵌入外部链接的平台上插入图片
  • 跨平台兼容性:图床链接不受单一平台限制,可以在不同网站、社交平台、邮件等各种环境中共享和展示图片

目前世面上的图床很多,免费的付费的,付费的第三方图床

第三方图床

1、去不图床

杜老师说https://dusays.com/旗下的图片托管平台。收费,但服务较稳定

图床地址:https://7bu.top/

图床特点

  • 由杜老师保持维护
  • 对国内加载速度快
  • 容量可随用随买
2、SM.MS图床

免费图床,目前本站评论区图片上传功能使用此图床中

主站:https://sm.ms/

因部分地区存在阻断问题,可能无法打开主站,现已有面向国内的网站https://smms.app/

图床特点

  • 单个文件最大5M,单次最多上传10张图片
  • 免费版共5G存储空间(更多内容请查看定价)

自建图床

1、Telegraph-Image

免费图片托管解决方案,是Flickr/imgur的替代品,使用Cloudflare Pages和Telegraph作为图床

项目仓库(github):https://github.com/cf-pages/Telegraph-Image

具体部署方式可参考该仓库的readme.md文件

项目特点

  • 免费,图片数量无限额
  • 支持后台图片管理
  • 支持图片审查API
  • 支持图片白名单加载
2、Cloudflare Image Hosting

Cloudflare图像托管Telegraph上的免费无限图像托管,部署在Cloudflare上

项目仓库(github):https://github.com/ifyour/cf-image-hosting

部署方式:

参考readme

项目特点:

  • 免费,图片数量无限额
  • 可通过拖拽上传图片
  • 可通过复制粘贴上传图片
  • 最大文件大小限制为5MB
  • 可上传图片、gif、视频
  • 无后台管理
3、兰空图床

官网:https://www.lsky.pro/

本文以兰空图床为例搭建:使用docker方式搭建:能使用源码搭建的也能使用源码搭建

3-1.1 环境

ubuntu 20.04.6 x64

3-1.2 安装docker

直接用按菜鸟教程步骤安装https://www.runoob.com/docker/ubuntu-docker-install.html

如果曾经安装过docker,需要卸载干净

1、卸载docker
1
2
3
sudo apt-get purge docker-ce docker-ce-cli containerd.io

sudo rm -rf /var/lib/docker
2、安装docker

更新apt依赖

1
sudo apt-get update

安装apt依赖包,用于通过https来获取仓库

1
2
3
4
5
6
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common

添加docker官方GPG秘钥

1
curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc

再一次更新apt

1
sudo apt-get update

安装最新docker

1
sudo apt-get install docker-ce docker-ce-cli containerd.io

重启docker

1
sudo systemctl restart docker
3-1.3 安装docker-compose

根据此项目的docker-compose要求,需要版本是2以上的,因此安装docker-compose 2.37

1
curl -L "https://github.com/docker/compose/releases/download/2.37.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

添加权限

1
chmod +x /usr/local/bin/docker-compose

如果发现下载对应的版本下载不下来,可以在/etc/hosts里面加上本地ping github.com产生的地址,当然可以手动下载后增加

下载对应的包后,拷贝到/usr/local/bin/,并改名为docker-compose,再次执行添加权限命令

image-20260131212659011

3-1.4 修改docker源

因为网络问题,导致国内的镜像基本都无效,要下载镜像会报错,如图

image-20260131212901814

添加镜像

1
sudo vim /etc/docker/daemon.json

增加次项目中的地址https://github.com/dongyubin/DockerHub

image-20260131213056498

image-20260131213130655

3-1.5 下载运行镜像

前置条件已经搞完,接下来开始搭建图床

创建目录

1
2
3
4
5
mkdir -p /root/data/docker_data/lsky-pro

cd /root/data/docker_data/lsky-pro

nano docker-compose.yml

docker-compose.yml内容,可以根据自己的要求修改对应的账号密码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
version: '3'
services:
lsky-pro:
container_name: lsky-pro
image: dko0/lsky-pro
restart: always
volumes:
- /root/data/docker_data/lsky-pro/lsky-pro-data:/var/www/html #映射到本地
ports:
- 7791:80
environment:
- MYSQL_HOST=mysql
- MYSQL_DATABASE=lsky-pro
- MYSQL_USER=lsky-pro
- MYSQL_PASSWORD=lsky-pro

mysql:
image: mysql:8.0
container_name: lsky-pro-db
restart: always
environment:
- MYSQL_DATABASE=lsky-pro
- MYSQL_USER=lsky-pro
- MYSQL_PASSWORD=lsky-pro
- MYSQL_ROOT_PASSWORD=lsky-pro
volumes:
- /root/data/docker_data/lsky-pro/db:/var/lib/mysql

修改完后,ctrl+x退出,按y保存,enter确认

运行之前确保7791未被占用,占用请修改或者kill掉使用的进程,运行项目

1
docker-compose up -d 

image-20260131213519459

运行完后直接浏览器访问当前项目http://127.0.0.1:7791

3-1.6 初始环境

image-20260131214339599

下一步后,数据库连接地址填docker-compose文件里的容器名称lsky-pro-db,连接端口不用填

image-20260131214419644

成功安装

image-20260131214404634

image-20260131214431125

一些鸡肋的设置就不说了,自己可以研究下

直接说最重要的token+接口测试

获取token

image-20260131214953055

image-20260131215400581

可以看到对应的token

测试上传

image-20260131215553822

正常

参考:https://blog.laoda.de/archives/docker-compose-install-lskypro