在数字化时代,图片已成为我们日常沟通和表达的主要方式。无论是社交媒体、博客还是论坛,图片都是不可或缺的元素。然而,随着图片数量的不断增加,如何高效地存储和分享图片成为了一个难题。这时候,图床应运而生,成为解决这一问题的利器。

图床

什么是图床

图床,顾名思义,就是存储图片的“床”。它是一种提供在线图片存储服务的工具,允许用户上传、存储和分享图片。通过图床,用户可以将图片上传到云端,然后获得一个链接,可以在任何地方分享这个链接,而不需要担心图片的存储和带宽问题。

图床搭建的多种方案

  1. GitHub + jsDelivr CDN + PicGo

    • 原理:利用 GitHub 的仓库(Repository)存储图件,通过 jsDelivr(全球公共 CDN)加速访问,使PicGo 作为客户端自动上传。
    • 优点:完全免费、无需维护
    • 缺点: jsDelivr DNS易被污染;Github服务器位于国外,直接访问速度较慢
  2. 阿里云 OSS + PicGo

    • 原理:使用对象存储服务(OSS),直接将图片上传至服务商的服务器。
    • 优点:国内访问速度快,稳定性极高。
    • 缺点:如果流量大,费用会迅速上涨;OSS自定义域名需要备案。

      什么是阿里云 OSS?)

  3. Chevereto + PicGo

    • 原理: Chevereto 是一套成熟的 PHP 图床程序(现在只有付费版)。你需要自己购买一台 服务器安装 部署 Chevereto 程序,然后通过 PicGo 对接其 API。
    • 优点:独立的后台管理页面,功能强大。
    • 缺点:维护成本高、对服务器性能有一定要求。
  4. Cloudflare R2 + WebP Cloud + PicGo

    • 原理:Cloudflare R2 是 S3 兼容的对象存储,最大卖点是免费的出口流量(不像 AWS S3 下载要钱)。WebP Cloud 用于图片格式自动转换(WebP/AVIF)和加速。
    • 优点:流量免费、私有性好。
    • 缺点:配置复杂、国内访问不稳定。
  5. 轻量应用服务器 + lsky Pro + PicGo

    • 原理:使用轻量应用服务器,部署 lsky Pro(国产的开源、轻量级图床程序)。
    • 优点:轻量级、部署简单、存储灵活。
    • 缺点:依赖国内服务器。

    本文将详细介绍轻量应用服务器 + lsky Pro (兰空图床) + PicGo的方案。

轻量应用服务器配置

本文以腾讯云轻量应用服务器为例

购买合适的轻量应用服务器

镜像选择使用宝塔Linux面板

初始化宝塔面板

在导航栏选择应用管理,点击立即登录登录宝塔面板

选择初始化组件LNMP,因为我们选择的为轻量应用服务器,所以使用Nginx(使用资源更少,效率更高)。数据库这里以MySQL为例,也可选择其它的。(这块PHP版本应设置为8.1或8.0,8.2会报错,后续文章会介绍)

更改宝塔面板端口

为增强安全性,需要更改宝塔面板端口(需等待初始化组件安装完成后)

在控制台放行端口10000(建议端口范围为8888 - 65535)

在宝塔面板设置中更改面板端口为刚放行的端口,点击确定后面板会自动重启

搭建Lsky Pro

Lsky Pro开源版已经停止更新,但其功能已经足够使用

下载Lsky Pro

这里我们下载最后发布的开源的2.1版本

下载链接,这里直接从Github下载,速度看网速

创建网站

在宝塔面板添加一个站点,域名可自定义,这里以服务器IP为例

删除网站根目录下的404.htmlindex.html

上传安装包

上传下载的Lsky Pro的安装包

解压

右键上传的压缩包进行解压

删除压缩包(可选,删不删看个人选择)

配置网站

将网站的运行目录改为/public并保存

设置伪静态

1
2
3
4
5
6
7
8
9
10
11
12
location / {
try_files $uri $uri/ /index.php?$query_string;
}

location ~ ^/livewire {
expires off;
try_files $uri $uri/ /index.php?$query_string;
}

location ~ .*\.(jpg|jpeg|webp|avif|bmp|gif|png|tif|tiff|jp2|j2k|jpf|jpm|jpg2|j2c|jpc|jpx|heic|heif)$ {
try_files $uri $uri/ /index.php?$query_string;
}

访问网站

发现报错500

检查文件发现PHP过高或过低会导致与Carbon的兼容性问题,此处将PHP版本更换为8.1或8.0(需大于8.0.2,小于8.2)即可。

将站点的PHP版本替换为8.1

再次访问网站,已经可以成功进入安装引导。

运行环境检测未通过,缺少Fileinfo等扩展和函数。

根据引导安装所需要的扩展和函数(图示为部分示例)

数据库配置

在宝塔面板中创建一个数据库

将数据库的配置信息填入并设置管理员账号与密码

后台设置

安装成功后点击进入首页

在首页右上角点击登录,需要进行一些系统的设置

系统设置

可自行根据需要进行设置

邮件配置此处不做演示,需要配置可前往邮箱服务网站设置中获取主机地址

角色组配置

根据个人需要进行配置

40GB = 41943040KB

在线文件大小换算 https://www.bejson.com/convert/filesize/

上传图片

网页端测试

上传一张图片进行测试

将图片的访问链接URL复制放到浏览器中可以正常访问

网页端测试成功!

PicGo配置

下载PicGo

PicGo 官方文档https://picgo.github.io/PicGo-Doc/zh/guide/

PicGo 2.4.3版本下载地址:https://release.picgo.app/2.4.3/PicGo-2.4.3-x64.exe

安装PicGo

点击exe程序进行安装,无脑下一步即可

配置PicGo

在右下角托盘处 打开 PicGo

输入lsky-upload即可找到,安装图示插件

获取tokens

根据接口说明文档我们需要通过POST请求来生成token,这里提供两种方法

  1. 使用浏览器控制台发送POST请求
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
var xhr = new XMLHttpRequest();
xhr.open('POST', 'https://example.com/api', true); //修改为自己的接口
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.onload = function() {
if (xhr.status === 200) {
console.log('Response:', xhr.responseText);
} else {
console.error('Error:', xhr.statusText);
}
};
xhr.onerror = function() {
console.error('Network Error');
};
var data = JSON.stringify({
email: '{你的邮箱}',//修改为自己的邮箱
password: '{你的密码}'//修改为你自己的密码
});
xhr.send(data);

​ 返回的数据中,data属性的值即为token的键值对

  1. 使用Python的requests库发送POST请求
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    import requests
    # 替换为 WPS 提供的回调地址
    url = "https://example.com/api" #修改为自己的接口
    # 请求体中的 JSON 数据
    payload = {
    "email": "{你的邮箱}", #修改为自己的邮箱
    "password": "{你的密码}" #修改为你自己的密码
    }
    # 设置请求头
    headers = {
    "Content-Type": "application/json"
    }
    # 发送 POST 请求
    response = requests.post(url, json=payload, headers=headers)
    # 输出响应结果
    print("状态码:", response.status_code)
    print("响应内容:", response.json())

配置插件

将服务器域名http://xxx.xxx.xxx.xxx和刚才获取的Token2|xxxx填入并保存

可配置多个服务器信息,在页面右上角可以自由选择

上传一张图片进行测试,测试成功!

配置typora图片自动上传

在写博客的时候,使用的图片都需要单独放置到img目录再进行上传,十分麻烦。typora提供了一种图片自动上传的功能,当把图片粘入编辑器时,会自动将图片上传,并将返回的图片链接以正确的格式放在指定位置,这大大简化了我们在博客撰写时的工作。

测试成功!

完结撒花!🎉🎉🎉

参考链接:https://blog.csdn.net/qq_39927501/article/details/123336682