Awesome
Published on 2024-09-10 / 113 Visits
0
0

解决 Serv00 下兰空图床使用本地储存时访问图片 403

前言

Serv00 搭建了兰空图床(也就是 Lsky Pro),可正当我上传了第一个图片准备看一看时,结果它 403 了:

https://img.xshaw.top/i/66c2e3d587c6b.png

于是便有了这篇文章。

复现

复现的方法很简单,在使用兰空图床默认配置(使用本地储存)不对其改动的情况下,随便上传一个图片,引用或直接打开,即可复现该问题。

https://img.xshaw.top/i/66c2e93e91a5f.gif

解决

什么是 403?

要解决问题,首先要知道问题的本质。

状态码 403 Forbidden 代表客户端错误,指的是服务器端有能力处理该请求,但是拒绝授权访问。1 这个状态类似于 401,但进入 403 状态后即使重新验证也不会改变该状态。该访问是长期禁止的,并且与应用逻辑密切相关(例如没有足够的权限访问该资源)。1

通常一下三种场景会返回 403 错误2

  1. 用户访问只能被内网访问的文件;

  2. 访问禁止目录浏览的目录,例:设置 autoindex off 后访问目录;

  3. 网站禁止特定的用户访问所有内容,例:网站屏蔽某个 ip 访问。

是什么原因导致的?

初步判断是文件权限的问题,因为我其他配置都是按照教程来的,也反复试了好几次还是 403。那么接下来开始解决问题吧。

解决方案

首先打开 Serv00 的面板,在打开自带的文件管理器。

就是侧边栏这个

就是侧边栏这个

并选择主目录下的 domains 文件夹(如果你没有安装在 domains 文件夹内,请以实际为准,变通一下),再点上面的 More

https://img.xshaw.top/i/66c2ee6e25fd1.png

在点击 File Permissions 给文件夹授予权限。

https://img.xshaw.top/i/66c2ef1bb212d.png

把权限全部点上,别忘了勾选 Apply recursively?(这样可以给文件夹内的所有文件也一并授予权限)

https://img.xshaw.top/i/66c2ef8d3f83c.png

虽然权限已经授予了,但是在兰空图床默认设置下,图片路径命名规则是 年/月/日,也就是说,你第二天上传图片,它又会创建一个新的文件夹,经过测试发现,新的文件夹的权限依然不足,这就导致第二天的图片无法访问。这样一天天的太麻烦了,别着急,且看下一步。

我们来的 你的域名/admin/groups,在里面选择你要更改的角色组(若没有其他特殊要求,就改 系统默认组&游客组,毕竟建这东西也是给自己用的),点击这个编辑:

https://img.xshaw.top/i/66c2f238c2d21.png

路径命名规则 改成空值,这样兰空图床就不会每天更改路径了。(别忘了点右下角保存

https://img.xshaw.top/i/66c2f26ead65a.png

或者将图片名称改为{Y}{m}{d}{uniqid},既避免了图片重复又解决了问题。

现在问题就得到了解决。

参考链接

1.https://xshaw.top/posts/serv00ls403/


Comment