正常情况下,自用图床使用lsky本地存储完全足够,我为了节省空间(我的vps没多大硬盘空间),将OneDrive作为存储。

每一个步骤都可以单独作为图床来用:

OneDrive可以直接嵌入图片外链,但是国内不好访问,且每次都要手动操作,非常麻烦。

AList+OneDrive可以解决国内访问的问题(使用AList代理),但是无法上传图片自动重命名。

AList挂载OneDrive

首先打开https://alist.nn.ci/tool/onedrive/request open in new window

来到该页面后点击Create client(创建客户端)

跳转到azure页面后点击新注册

受支持的账户类型选择为任何组织目录(任何 Microsoft Entra ID 租户 - 多租户)中的帐户和个人 Microsoft 帐户(例如 Skype、Xbox)

重定向URL填写为

https://alist.nn.ci/tool/onedrive/callback

注册后可以获得客户端ID,复制,先保存下

注册好后,选择证书和密码,点击新客户端密码,选择截止期限为最长的那个,点击添加

选择API 权限,点击 Microsoft Graph,在选择权限中输入 file,勾选 Files.read(注:Files.read 是只读最小权限,图中权限较大,也同样可以),点击更改权限

注意,密码(值)离开页面后就再也看不了了,所以务必将其复制下来
除了刚刚创建时,之后无法查看客户端密码值。请务必在创建时保存密码,然后再离开该页面。

回到https://alist.nn.ci/tool/onedrive/request页面。将客户端ID与密码(值)输入进去,然后点击Get Refresh Token(获取刷新token)。

然后回到AList的管理页面,点击存储,选择添加,驱动选择OneDrive

然后根据提示,依次将所需内容填写进去即可。

Lsky挂载AList

此处使用的是开源版本Lsky版本2.1(也就是1panel面板中下载的docker版)

来到Lsky的管理后台,添加一个存储策略。

如图所示。

如果填写访问域名为兰空图床域名,需要额外一步操作(为/img路径进行反代):

location /img {
    proxy_pass https://localhost:5244/d/AList存储路径;
    proxy_read_timeout 600s;
}

或者使用1panel面板快速配置:

我的存储路径为/sf/lsky,所以反向代理地址为/d/sf/lsky

最好是在同一台服务器上比较好,如果不是需要将127.0.0.0:5244替换为URL

访问域名处的区别:

如果填写为https://alist域名/d,上传后访问图片链接为AList的直链。

如果填写为https://兰空图床域名/img,访问链接为图床地址,这样可以隐藏你的alist实际文件路径。

PicList添加Lsky

使用如下命令获取兰空图床Token

curl --location --request POST 'https://兰空图床域名/api/v1/tokens' \
--form 'email="用户名"' \
--form 'password="密码"'

在获取的Token前面加上Bearer