openlist
openlist

目录
[toc]
特别鸣谢 时光 & sin 两位大佬的手把手指导💖
最终目的
利用openlist+网盘实现如下2个需求:
- 图床
- 对外可提供下载的云盘
这个方式的好处就是,云服务器存储太少,这种方式,可以利用云盘较大的存储空间,做自己的云盘。
效果
我自己的openlist云盘demo:
https://openlist.onedayxyy.cn/

sin openlist云盘:


官网
背景


openlist+网盘 做图床(来自 @时光)

方案优势


1、部署(docker部署)
docker部署
警告
强烈建议使用 Docker 在隔离环境中部署 OpenList。否则,如果没有正确配置像 SELinux 或 AppArmor 这样的安全措施,假如您的密码暴露,黑客将可以访问您服务器上的所有文件。
警告
- 在 `v4.1.0` 以后的版本中(不包含 `v4.1.0`),OpenList 镜像已经移除了 `PUID`、`PGID`,并借鉴于 MariaDB 的构建方式,使用 `useradd` 增加了用户 `openlist`(UID 1001)和组 `openlist`(GID 1001),并使用该用户运行 `openlist server`。
这意味着,您需要手动处理映射的目录的权限问题,确保容器内的 `openlist(1001)` 用户有权限访问映射的目录。
您也可以通过 `--user UID:GID` 的方式来运行容器指定容器内运行 OpenList 的用户和组,让容器内有权限访问映射的目录。
- **rootless** 模式中的 Docker, `--user 0:0` 代表当前用户的 UID 和 GID。请确保您在运行容器时,正确设置了 `--user` 参数,以确保文件权限的正确性。
创建 docker-compose.yml 文件。
1mkdir -p /root/docker-service/openlist
2cd /root/docker-service/openlist
3vim docker-compose.yml
写入以下内容,然后保存并退出:
v4.1.0 以后版本
1# docker-compose.yml
2services:
3 openlist:
4 image: 'openlistteam/openlist:latest'
5 container_name: openlist
6 user: '0:0' # Please replace `0:0` with the actual user ID and group ID you want to use to run OpenList.
7 volumes:
8 - './data:/opt/openlist/data'
9 ports:
10 - '5244:5244'
11 environment:
12 - UMASK=022
13 restart: unless-stopped
运行:
1docker-compose up -d

访问:
http://121.4.103.106:5244/


查看管理员信息
首次运行
1docker logs openlist
你将在日志中看到密码。
1Successfully created the admin user and the initial password is: xYZabHGf
非首次运行
您可以重新生成或手动设置密码。
1# 重新随机生成密码
2docker exec -it openlist ./openlist admin random
3
4# 手动设置密码为 `NEW_PASSWORD`(替换为您要设置的密码)
5docker exec -it openlist ./openlist admin set NEW_PASSWORD
配置nginx
云服务器配置好nginx:
1[root@hg-ecs conf.d]#cat openlist.onedayxyy.cn.conf
2server {
3 listen 80;
4 server_name openlist.onedayxyy.cn;
5 #配置https重定向
6 return 301 https://$host$request_uri;
7}
8
9server {
10 listen 443 ssl;
11 server_name openlist.onedayxyy.cn;
12
13 location / {
14 proxy_pass http://127.0.0.1:5244/;
15 client_max_body_size 100M;
16 proxy_set_header Host $host;
17 proxy_set_header X-Real-IP $remote_addr;
18 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
19 proxy_set_header X-Forwarded-Proto $scheme;
20 }
21
22 ssl_certificate /etc/letsencrypt/live/onedayxyy.cn/fullchain.pem;
23 ssl_certificate_key /etc/letsencrypt/live/onedayxyy.cn/privkey.pem;
24
25 ssl_session_timeout 5m;
26 ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
27 ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
28 ssl_prefer_server_ciphers on;
29 add_header Strict-Transport-Security "max-age=31536000";
30
31 access_log /var/log/nginx/photo.onedayxyy.cn.https.log;
32}
重启nginx服务:systemctl restart nginx
在自己dns做好域名解析,后续就可以用域名来访问了。
2、从百度云开发平台获取代码
官网文档:https://doc.oplist.org/guide/drivers/baidu
请前往百度开放平台。(按官网指导配置就好,此处无坑)

获取自己的相关代码:(特别是 刷新令牌,后续需要用到)

3、添加百度网盘存储
配置百度网盘存储
警告
- 这里的挂载路径是指自己openlist的根路径,你进到openlist主页后,想要给别人展示的名称,建议英文。
- 根文件夹路径:是指自己百度网盘下的路径,这里我这里是`/openlist`
- Web代理要打开,WebDAV策略要配置成本地代理;
- **这俩不需要填,只填刷新令牌就行;**
- 启用签名默认是关闭的;(要关闭)
- 其它无需配置;



关闭签名

百度网盘里内容
在自己百度网盘根目录下创建openlist目录,再往里面放一些文件,用于测试。

效果


对外分享
添加分享路径:

开启gust用户权限:

4、配置eo
配置eo

创建规则




验证
1curl -I https://openlist.onedayxyy.cn/d/baidu/img/20251221132909279.png


5、配置piclist


验证:

1openlist图床:
2https://openlist.onedayxyy.cn/d/baidu/img/20251221132909279.png
已丢弃openlist+网盘做图床
仅仅做网盘使用即可!(2025年12月21日)。
2025年12月21日丢弃


2025年12月22日再次丢弃
把自己本地images目录通过百度盘上传后,再移动到openlist目录后,发现在web打开openlist.onedayxyy.cn后,进入到images后,直接报524错误:


估计是目录下数量太多了,挂了.

元信息这里可以给某个目录设置密码
元信息这里可以给某个目录设置密码,,但是里面的某个文件链接分享出去后,别人还是可以使用的,例如图片,别人md是可以继续使用这里的图片的。

302重定向是啥意思?
302重定向 是HTTP状态码中的一种,全称是 302 Found,表示临时重定向,指服务器接收到客户端的请求后,告知客户端:你要访问的资源临时在另一个地址上,需要你去新地址获取。
核心特点
临时性 这是302最关键的属性。它告诉浏览器和搜索引擎:当前资源的跳转是临时的,原URL的权重不会转移到新URL上,搜索引擎通常会继续收录原URL。 比如电商网站的促销活动页面,活动期间把A页面重定向到B活动页,活动结束后就恢复A页面的正常访问,这种场景就适合用302。
跳转逻辑
- 浏览器请求
http://example.com/old - 服务器返回302状态码,并在响应头里附带
Location: http://example.com/new - 浏览器自动跳转到
http://example.com/new这个新地址
- 浏览器请求
和301重定向的核心区别
很多人会混淆302和301永久重定向,两者的差异主要在用途和对搜索引擎的影响上:
| 特性 | 302 临时重定向 | 301 永久重定向 |
|---|---|---|
| 性质 | 临时跳转,原URL可能恢复使用 | 永久跳转,原URL不再使用 |
| 权重传递 | 不传递,搜索引擎保留原URL权重 | 传递,搜索引擎将原URL权重转移到新URL |
| 典型场景 | 活动页面、临时维护、A/B测试 | 域名更换、页面永久迁移、合并重复页面 |
常见使用场景
- 网站临时维护时,将所有页面重定向到维护公告页。
- 电商平台的限时促销,把商品列表页临时跳转到促销专题页。
- A/B测试时,让一部分用户跳转到不同版本的页面,测试效果。
需要我帮你整理一份301和302重定向的配置代码示例吗?
啥叫直链?
直链,全称直接链接,是指直接指向目标资源(文件、图片、网页、视频等)真实存储地址的链接,访问时无需经过跳转、中转页面,浏览器或客户端会直接请求并加载该资源。
核心特点
- 无中转、无跳转
点击直链后,不会被引导到其他中间页面,而是直接触达目标资源。比如一个PDF文件的直链
https://example.com/docs/report.pdf,点击后会直接触发下载或在线预览,没有多余的跳转步骤。 - 指向真实存储地址 直链的URL路径,就是资源在服务器上的实际存放路径,没有隐藏或伪装。
- 可直接嵌入调用 比如在网页中嵌入一张图片的直链,页面就能直接显示这张图片;而如果是非直链(比如带跳转的图片分享链接),就无法直接嵌入显示。
和非直链的对比(结合你之前问的302重定向)
- 直链:
https://example.com/image.jpg→ 直接访问图片资源,无任何跳转。 - 302重定向链接:
https://example.com/old-img→ 服务器返回302状态码,引导浏览器跳转到https://example.com/new-img,属于间接链接。 - 网盘分享链接:比如某网盘的
https://pan.example.com/s/123abc→ 先跳转到网盘的分享页面,需要手动点击“下载”才能获取文件,也不属于直链。
需要我帮你区分直链和网盘分享链接的差异吗?
是否会封禁?
sin

时光

!


!

!

!

!



直连下载的确快



定时备份云服务器内容到网盘
- 背景:

- 时光文档:
https://notes.ksah.cn/service/rclone

结束


- 01snowshot 2025-12-26
- 02博客和文档是否需要拆分开 2025-12-26
- 03我的博客首页截图记录 2025-12-26