Skip to content

Conversation

@KirCute
Copy link
Member

@KirCute KirCute commented Aug 6, 2025

提供一种类似大多数网盘的文件分享操作,这种分享方式可以通过强制 Web 代理隐藏文件源路径,可以设置分享码、最大访问数和过期时间,并且不需要启用 guest 用户。

在全局设置中可以调整:

  • 是否强制 Web 代理
  • 是否允许预览
  • 是否允许预览压缩文件
  • 分享文件后,点击“复制链接”按钮复制的内容

前端部分:OpenListTeam/OpenList-Frontend#156
文档部分:OpenListTeam/OpenList-Docs#130

Close #183
Close #526
Close #860
Close #892
Close #1079

@KirCute KirCute requested review from j2rong4cn and xrgzs August 7, 2025 17:00
@KirCute KirCute marked this pull request as ready for review August 7, 2025 17:01
@xrgzs
Copy link
Member

xrgzs commented Aug 8, 2025

感谢您对OpenList的贡献!如果方便的话,是否能够提供一下该功能的演示截图?

@Suyunmeng
Copy link
Contributor

感谢您对OpenList的贡献!如果方便的话,是否能够提供一下该功能的演示截图?

image image image

@Suyunmeng
Copy link
Contributor

Suyunmeng commented Aug 8, 2025

有个问题,原先分享出去的目录如果原先的目录更改了位置,或该目录消失,原先的链接会直接共享整个根目录出去,导致其他目录内容泄露。
更改前:
image
更改后:
image

@Suyunmeng
Copy link
Contributor

有个问题,原先分享出去的目录如果原先的目录更改了位置,或该目录消失,原先的链接会直接共享整个根目录出去,导致其他目录内容泄露。

能在共享的目录被迁移或消失后将这个分享链接自动失效吗,这样就可以避免这种问题发生

@KirCute
Copy link
Member Author

KirCute commented Aug 8, 2025

感谢您对OpenList的贡献!如果方便的话,是否能够提供一下该功能的演示截图?

补充两张截图
image
image

@KirCute
Copy link
Member Author

KirCute commented Aug 8, 2025

能在共享的目录被迁移或消失后将这个分享链接自动失效吗,这样就可以避免这种问题发生

我刚刚试了一下,出现这种情况后可以通过无效的分享链接列出根目录的内容,但打开其中任何一项就会出现object not found,我再研究一下,应该是一个很好改的bug

@KirCute
Copy link
Member Author

KirCute commented Aug 8, 2025

能在共享的目录被迁移或消失后将这个分享链接自动失效吗,这样就可以避免这种问题发生

已修复

@Suyunmeng
Copy link
Contributor

Suyunmeng commented Aug 8, 2025

发现了新问题,在两个分享链接不同,绑定的目录也不同,例如 http://127.0.0.1:5244/@s/gHnSM4mjhttp://127.0.0.1:5244/@s/j20jfpiY ,但两个链接的密码相同时,只要其中一个链接输过密码,另外一个相同密码的链接就不用输密码,而是直接进去列表界面了

@KirCute
Copy link
Member Author

KirCute commented Aug 8, 2025

发现了新问题,在两个分享链接不同,绑定的目录也不同,例如 http://127.0.0.1:5244/@s/gHnSM4mjhttp://127.0.0.1:5244/@s/j20jfpiY ,但两个链接的密码相同时,只要其中一个链接输过密码,另外一个相同密码的链接就不用输密码,而是直接进去列表界面了

这是因为元信息的密码是记录在浏览器的cookie中的,每次访问的时候如果浏览器有记录就会直接尝试使用浏览器里记录的密码访问,分享码和元信息的密码用的是同一套组件

Suyunmeng
Suyunmeng previously approved these changes Aug 8, 2025
jyxjjj
jyxjjj previously approved these changes Aug 8, 2025
@Alien-Et
Copy link

Alien-Et commented Aug 8, 2025

能在共享的目录被迁移或消失后将这个分享链接自动失效吗,这样就可以避免这种问题发生

已修复

大佬,牛而逼之👍🏻

@Alien-Et
Copy link

Alien-Et commented Aug 8, 2025

建议表单名显示,随oplist右下角的齿轮⚙️设置,在改变语言时而显示对应语言的文字。

@xrgzs xrgzs merged commit e4c902d into OpenListTeam:main Aug 19, 2025
12 checks passed
@KirCute KirCute deleted the feat/share branch August 19, 2025 07:18
KirCute added a commit to KirCute/OpenList that referenced this pull request Aug 19, 2025
xrgzs pushed a commit that referenced this pull request Aug 19, 2025
@DreamlingBig
Copy link

分享摘要内容添加了
和\n。在前端复制分享链接实际内容没有换行。

@KirCute
Copy link
Member Author

KirCute commented Aug 19, 2025

分享摘要内容添加了和\n。在前端复制分享链接实际内容没有换行。

复现失败

@DreamlingBig
Copy link

DreamlingBig commented Aug 20, 2025

分享摘要内容添加了和\n。在前端复制分享链接实际内容没有换行。

复现失败

没事 应该是我刷新前端页面点击分享导致的

@Bitm-m
Copy link

Bitm-m commented Aug 21, 2025

问题:
beta版更新了,判断访问次数好像是根据ip,我同一个ip访问多次,次数不不变,

功能添加:
1.分享的界面功能很少,不能预览画面,txt,

2.可以考虑加一个上传文件的权限,允许对分享的目录进行上传,这样可以像朋友收集文件
上传文件要求用户输入用户名,创建文件夹,上传的文件都在一个文件夹下

@xrgzs
Copy link
Member

xrgzs commented Aug 22, 2025

不能预览画面,txt,

image

@Bitm-m
Copy link

Bitm-m commented Aug 22, 2025

不能预览画面,txt,

image

看到了,还以为在分享页面

@eebssk1
Copy link

eebssk1 commented Aug 22, 2025

这个强制web代理。下载方走的是服务器自己还是对应存储的自定义代理

@KirCute
Copy link
Member Author

KirCute commented Aug 22, 2025

这个强制web代理。下载方走的是服务器自己还是对应存储的自定义代理

走的是服务器,我把自定义代理的处理忘了,等我改一下,改之后应该是如果有自定义代理则无论如何都会走自定义代理

@Bitm-m
Copy link

Bitm-m commented Aug 22, 2025

这个强制web代理。下载方走的是服务器自己还是对应存储的自定义代理

走的是服务器,我把自定义代理的处理忘了,等我改一下,改之后应该是如果有自定义代理则无论如何都会走自定义代理

大牛会考虑我的提议吗

@KirCute
Copy link
Member Author

KirCute commented Aug 22, 2025

大牛会考虑我的提议吗

分享功能的主要用法是发布在公共环境让不定人群访问和获取文件,允许不定人群上传文件我觉得还是有点太危险了,你这样的需求我觉得还是使用guest用户更好一些

@Bitm-m
Copy link

Bitm-m commented Aug 22, 2025

确实,但是分享是加密码的,而且只是一个文件夹,上传的文件只会在一个文件夹内,访客的话感觉没这么方便,这只是一个可选的项目,

lyy2005a2 pushed a commit to lyy2005a2/OpenList that referenced this pull request Aug 24, 2025
* 重构(docker):减小docker镜像大小(2)
* feat(share):支持更安全的文件共享(28)
* feat(server):添加错误页面和状态码(2)重复server/handles/archive.go(1)重复server/middlewares/down.go(1)
* feat(123_open):添加选项 (4)
* feat(服务器):将 OpenListTeam#1099 改编为 OpenListTeam#991 (0)重复(3)[server/handles/archive.go=server/handles/down.go=server/handles/sharing.go]
@pkq66882
Copy link

为什么我添加不了分享呢
image

@KirCute
Copy link
Member Author

KirCute commented Sep 19, 2025

为什么我添加不了分享呢

需要去用户管理里开启权限

@pkq66882
Copy link

好的谢谢你,我才注意权限,原来还要添加一个。

为什么我添加不了分享呢

需要去用户管理里开启权限

ForSourceCodeAnalysis pushed a commit to ForSourceCodeAnalysis/OpenList that referenced this pull request Oct 4, 2025
提供一种类似大多数网盘的文件分享操作,这种分享方式可以通过强制 Web 代理隐藏文件源路径,可以设置分享码、最大访问数和过期时间,并且不需要启用 guest 用户。

在全局设置中可以调整:
- 是否强制 Web 代理
- 是否允许预览
- 是否允许预览压缩文件
- 分享文件后,点击“复制链接”按钮复制的内容

前端部分:OpenListTeam/OpenList-Frontend#156
文档部分:OpenListTeam/OpenList-Docs#130

Close OpenListTeam#183
Close OpenListTeam#526
Close OpenListTeam#860
Close OpenListTeam#892
Close OpenListTeam#1079

* feat(share): support more secure file sharing

* feat(share): add archive preview

* fix(share): fix some bugs

* feat(openlist_share): add openlist share driver

* fix(share): lack unwrap when get virtual path

* fix: use unwrapPath instead of path for virtual file name comparison

* fix(share): change request method of /api/share/list from GET to Any

* fix(share): path traversal vulnerability in sharing path check

* 修复分享alias驱动的文件 没开代理时无法获取URL

* fix(sharing): update error message for sharing root link extraction

---------

Co-authored-by: Suyunmeng <69945917+Suyunmeng@users.noreply.github.com>
Co-authored-by: j2rong4cn <j2rong@qq.com>
ForSourceCodeAnalysis pushed a commit to ForSourceCodeAnalysis/OpenList that referenced this pull request Oct 4, 2025
ForSourceCodeAnalysis pushed a commit to ForSourceCodeAnalysis/OpenList that referenced this pull request Oct 4, 2025
提供一种类似大多数网盘的文件分享操作,这种分享方式可以通过强制 Web 代理隐藏文件源路径,可以设置分享码、最大访问数和过期时间,并且不需要启用 guest 用户。

在全局设置中可以调整:
- 是否强制 Web 代理
- 是否允许预览
- 是否允许预览压缩文件
- 分享文件后,点击“复制链接”按钮复制的内容

前端部分:OpenListTeam/OpenList-Frontend#156
文档部分:OpenListTeam/OpenList-Docs#130

Close OpenListTeam#183
Close OpenListTeam#526
Close OpenListTeam#860
Close OpenListTeam#892
Close OpenListTeam#1079

* feat(share): support more secure file sharing

* feat(share): add archive preview

* fix(share): fix some bugs

* feat(openlist_share): add openlist share driver

* fix(share): lack unwrap when get virtual path

* fix: use unwrapPath instead of path for virtual file name comparison

* fix(share): change request method of /api/share/list from GET to Any

* fix(share): path traversal vulnerability in sharing path check

* 修复分享alias驱动的文件 没开代理时无法获取URL

* fix(sharing): update error message for sharing root link extraction

---------

Co-authored-by: Suyunmeng <69945917+Suyunmeng@users.noreply.github.com>
Co-authored-by: j2rong4cn <j2rong@qq.com>
@xrsb
Copy link

xrsb commented Oct 7, 2025

可以控制分享页中默认显示的预览页吗?现在好像是默认download页且无法更改

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet