We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
在使用 OneDrive 等网盘时,增加一个文件大小控制选项。具体功能是:用户可以自行设定一个文件大小阈值,例如小于指定的 M(兆字节)大小的文件通过服务器中转,大于该大小的文件则使用 302 跳转直连下载。这一功能可以优化小文件的传输效率,
用户请求下载文件 ->
Alist 获取文件大小 ->
比较文件大小与设定阈值 ->
添加文件大小判断逻辑 在文件下载请求处理的地方,获取文件的大小信息。通常可以通过 API(例如 OneDrive 的 API)获取到文件的元数据,其中包含文件大小。
设置大小阈值 在 Alist 的配置中,增加一个文件大小阈值的设置项。用户可以自定义这个阈值,比如 x MB。同时,也需要允许用户在后台面板上配置这个值。
判断文件下载方式 根据文件大小与设定的阈值进行比较:
如果文件大小小于用户设定的阈值,则通过服务器中转,Alist 从网盘下载文件,再返回给客户端。这对于小文件更安全并且可以避免过度频繁的直连下载。 如果文件大小大于阈值,则生成 302 重定向链接,直接让客户端从网盘服务获取文件。这种方式对大文件更加高效,减少服务器负载。 4. 生成 302 重定向链接 当文件大于阈值时,Alist 应生成一个 302 HTTP 重定向响应,带有指向网盘的真实下载地址的 URL。客户端接收到 302 响应后,会自动跳转并从网盘服务直接下载文件。
确保 API 权限和下载链接有效性 确保网盘服务支持通过 API 获取到文件的下载链接,并且链接在一定时间内是有效的。如果需要,Alist 可以通过 API 刷新或重新获取下载链接。
性能优化 为了避免频繁向网盘 API 请求文件大小信息,可以在 Alist 中增加一个缓存机制,将文件的元数据(包括文件大小)暂存一段时间,以提高性能。
UI 设计 在 Alist 的管理界面中,为用户提供简单直观的配置选项,可以设置文件大小阈值,以及查看当前的传输方式(中转或直连)的工作状态。
我记得很早以前,onemanager 这个程序好像就有这个功能
The text was updated successfully, but these errors were encountered:
Thanks for opening your first issue here! Be sure to follow the issue template!
Sorry, something went wrong.
或者 设置指定扩展名的文件走直连,指定文件名走中转
#7269 你看这个issue,你我的需求是一致的,文件大小分流或者扩展名分流。 alist底层套用的是rclone,rclone的vfs缓存支持按大小和扩展名过滤,但是这个过滤参数是全局的。 我通过四步实现分流。 1、rclone批量下载小文件 2、rclone挂载小文件,加入大文件过滤 3、rclone挂载网盘,加入小文件过滤 4、rclone union以上两个挂载,形成新的挂载,这个挂载就是带文件分流的。 以上步骤操作比较繁琐,能集成到软件里更好。
不太一样吧,你的需求是给小文件缓存到本地,他这个需求是根据文件大小来判断是否走反代
No branches or pull requests
Please make sure of the following things
Description of the feature / 需求描述
在使用 OneDrive 等网盘时,增加一个文件大小控制选项。具体功能是:用户可以自行设定一个文件大小阈值,例如小于指定的 M(兆字节)大小的文件通过服务器中转,大于该大小的文件则使用 302 跳转直连下载。这一功能可以优化小文件的传输效率,
Suggested solution / 实现思路
用户请求下载文件 ->
Alist 获取文件大小 ->
比较文件大小与设定阈值 ->
添加文件大小判断逻辑
在文件下载请求处理的地方,获取文件的大小信息。通常可以通过 API(例如 OneDrive 的 API)获取到文件的元数据,其中包含文件大小。
设置大小阈值
在 Alist 的配置中,增加一个文件大小阈值的设置项。用户可以自定义这个阈值,比如 x MB。同时,也需要允许用户在后台面板上配置这个值。
判断文件下载方式
根据文件大小与设定的阈值进行比较:
如果文件大小小于用户设定的阈值,则通过服务器中转,Alist 从网盘下载文件,再返回给客户端。这对于小文件更安全并且可以避免过度频繁的直连下载。
如果文件大小大于阈值,则生成 302 重定向链接,直接让客户端从网盘服务获取文件。这种方式对大文件更加高效,减少服务器负载。
4. 生成 302 重定向链接
当文件大于阈值时,Alist 应生成一个 302 HTTP 重定向响应,带有指向网盘的真实下载地址的 URL。客户端接收到 302 响应后,会自动跳转并从网盘服务直接下载文件。
确保 API 权限和下载链接有效性
确保网盘服务支持通过 API 获取到文件的下载链接,并且链接在一定时间内是有效的。如果需要,Alist 可以通过 API 刷新或重新获取下载链接。
性能优化
为了避免频繁向网盘 API 请求文件大小信息,可以在 Alist 中增加一个缓存机制,将文件的元数据(包括文件大小)暂存一段时间,以提高性能。
UI 设计
在 Alist 的管理界面中,为用户提供简单直观的配置选项,可以设置文件大小阈值,以及查看当前的传输方式(中转或直连)的工作状态。
Additional context / 附件
我记得很早以前,onemanager 这个程序好像就有这个功能
The text was updated successfully, but these errors were encountered: