alist-org / alist

🗂️A file list/WebDAV program that supports multiple storages, powered by Gin and Solidjs. / 一个支持多存储的文件列表/WebDAV程序,使用 Gin 和 Solidjs。
https://alist.nn.ci
GNU Affero General Public License v3.0
41.92k stars 5.41k forks source link

小米和vivo手机自带浏览器下载文件损坏 #7112

Closed jkakakakkdkdj closed 6 days ago

jkakakakkdkdj commented 2 weeks ago

Please make sure of the following things

AList Version / AList 版本

3.36.0

Driver used / 使用的存储驱动

本机存储

Describe the bug / 问题描述

alist使用的本机存储驱动,用小米手机和vivo手机自带浏览器以及via浏览器下载文件,有大概率文件损坏,下载的文件md5和源文件不同,要复现此现象,可以用安卓手机via浏览器或小米vivo自带浏览器选择一个文件,比如选择一个apk文件,快速点5次下载按钮,创建5个下载进度,5个进度下载完成后,你会发现大部分apk文件都损坏无法安装,使用es文件浏览器查看MD5码,发现文件的MD5和源文件不一样,经过我一晚上的测试,我已用多台电脑重新搭建alist服务进行测试,我很确定此BUG问题出在alist程序上

Reproduction / 复现链接

哦哦

Config / 配置

哦哦

Logs / 日志

No response

welcome[bot] commented 2 weeks ago

Thanks for opening your first issue here! Be sure to follow the issue template!

Leao9203 commented 2 weeks ago

尝试用电脑下载呢?也会出现MD5对不上的情况吗?或者手机换个浏览器,比如 Chrome 呢?

jkakakakkdkdj commented 2 weeks ago

电脑浏览器下载不会出现这个BUG,这个BUG只出现在手机上,更换别的浏览器,比如手机UC浏览器,不会出现文件损坏MD5变化的情况,但是下载的文件名字会重复,比如文件名是1.txt,用uc浏览器下载的文件名字就变成了1.txt1.txt 这个BUG对于手机用户是很不友好的

Leao9203 commented 2 weeks ago

电脑浏览器下载不会出现这个BUG,这个BUG只出现在手机上,更换别的浏览器,比如手机UC浏览器,不会出现文件损坏MD5变化的情况,但是下载的文件名字会重复,比如文件名是1.txt,用uc浏览器下载的文件名字就变成了1.txt1.txt 这个BUG对于手机用户是很不友好的

只要不是所有浏览器都出现这个问题,这个问题就跟 Alist 没关系,请找浏览器开发者提交问题去。

jkakakakkdkdj commented 2 weeks ago

为了证明我说的是对的,我进一步研究,最后发现,所有使用谷歌浏览器内核的手机浏览器都会出现多次点击下载一个文件,部分文件损坏的BUG,我查了下目前国产手机自带浏览器,比如 小米,vivo,华为,oppo等等,以及许多第三方手机浏览器都使用的谷歌Chromium内核,都会遇到这个BUG,这个BUG并不是100%会发生,有的人侥幸用的可能不是谷歌内核的手机浏览器,而且那怕用的谷歌内核浏览器,下载10次只有两三次是文件损坏的,遇到的人都会以为是网络波动导致,然后重新下载,所以这个BUG那怕存在了如此之久开发者也没有得到人反馈,但这个bug是真实存在的,我花了几个晚上,一个一个alist版本的测试,这个bug从3.25.1版本开始出现,直到现在3.36.0一直没有被修复,3.24.0及以前的版本没有这个bug,我不会编程,我没有开发者这么厉害的技术,但是我是个较真的人,遇到问题就总想探究其原因

Leao9203 commented 1 week ago

为了证明我说的是对的,我进一步研究,最后发现,所有使用谷歌浏览器内核的手机浏览器都会出现多次点击下载一个文件,部分文件损坏的BUG,我查了下目前国产手机自带浏览器,比如 小米,vivo,华为,oppo等等,以及许多第三方手机浏览器都使用的谷歌Chromium内核,都会遇到这个BUG,这个BUG并不是100%会发生,有的人侥幸用的可能不是谷歌内核的手机浏览器,而且那怕用的谷歌内核浏览器,下载10次只有两三次是文件损坏的,遇到的人都会以为是网络波动导致,然后重新下载,所以这个BUG那怕存在了如此之久开发者也没有得到人反馈,但这个bug是真实存在的,我花了几个晚上,一个一个alist版本的测试,这个bug从3.25.1版本开始出现,直到现在3.36.0一直没有被修复,3.24.0及以前的版本没有这个bug,我不会编程,我没有开发者这么厉害的技术,但是我是个较真的人,遇到问题就总想探究其原因

  1. 不知道你所说的“侥幸用的不是Chromium内核浏览器”指的是哪些,我目前用的是 Chrome 127.0.6533.10没有遇到这个问题。而且偶然有两到三次的损坏,这很正常,就是网络波动,没有谁能够保证网络稳定的,哪怕局域网,也保证所有设备都工作正常,100%不会出现网络波动。
  2. 你提到了“国产手机自带浏览器”都是这样,有没有可能,就是这些浏览器的问题?他们的内核版本是多少?完整的 Chrome 存在这个问题吗?
  3. “国产浏览器”投毒不是一天两天了,我还遇到过 github 被提示为非法网站呢。难道我要发 ticket 给 github support,让他们修改网站的内容吗?
  4. 你说的“第三方手机浏览器”指的是哪些?Firefox 或者 Microsoft Edge 这种包含完整内核的浏览器吗?还是类似于 VIA 这种基于 WebView 的浏览器呢?

顺带一提,提 issue 的时候,能不能带上运行环境?服务器是什么系统?手机是什么品牌什么系统?版本号是多少?网络环境是什么?

jkakakakkdkdj commented 1 week ago

我使用的是小米应用商店下载的107.0.5304.105版本chrome,你那个版本我从百度上搜索下载安装了,但是打不开,难道是需要谷歌服务什么的?我用chrome,10次大概有两三次下载文件损坏,用火狐浏览器,不管如何下载,下载多少次,一次损坏都没有,所以可以完全排除网络问题,5G网络,wifi,我都试了,网络环境好得很

我明白浏览器内核众多,环境复杂,网站很难保证完全兼容,但是最基本的下载功能做到兼容不难吧,我随便用iis建立一个站点,打开目录浏览,设置好mime类型,在多种浏览器上下载文件从来没遇到过问题

如果bug只出现在一个浏览器上,那可以理解是浏览器问题,但是我拿了3部手机,一部华为一部小米一部vivo,这三部手机自带浏览器使用alist下载文件均会出现这种bug,请问还是浏览器问题吗,我想应该是alist没有兼容这三个品牌手机浏览器的内核吧

其实我们讨论这么多,你不妨用你手机自带浏览器试一下,看我说的bug存不存在,记得用3.25.1以上版本的alist

关于你的顺带一提,我回复如下,运行环境是什么?我不太懂,服务器是Windows Server2012系统,台式电脑是win10 2023H2系统,笔记本也是win10系统,服务器,台式机,笔记本,我都搭建了alist服务测试,都有这个bug,和电脑没有关系,手机是小米,华为,vivo,三部我都测试了,都有这个bug,和手机也没关系,网络环境,台式机是网线,笔记本是手机热点和路由器wifi,手机是5G和路由器wifi,多种网络我都测试过,bug依旧,和网络环境没关系

SutoLiu commented 1 week ago

和浏览器关系不大,关键在于有没有用多线程下载,Alist多线程文件损坏是一个很久就已经存在的bug了,一直没修,单线程就不会出现文件损坏的问题,实在在意这个bug的话只能自己尝试修复这个bug后提交到主线,或者寻找Alist的替代品了

Royal520 commented 1 week ago

和浏览器关系不大,关键在于有没有用多线程下载,Alist多线程文件损坏是一个很久就已经存在的bug了,一直没修,单线程就不会出现文件损坏的问题,实在在意这个bug的话只能自己尝试修复这个bug后提交到主线,或者寻找Alist的替代品了

这是正解

creeper2020 commented 1 week ago

我使用的是小米应用商店下载的107.0.5304.105版本chrome,你那个版本我从百度上搜索下载安装了,但是打不开,难道是需要谷歌服务什么的?我用chrome,10次大概有两三次下载文件损坏,用火狐浏览器,不管如何下载,下载多少次,一次损坏都没有,所以可以完全排除网络问题,5G网络,wifi,我都试了,网络环境好得很

我明白浏览器内核众多,环境复杂,网站很难保证完全兼容,但是最基本的下载功能做到兼容不难吧,我随便用iis建立一个站点,打开目录浏览,设置好mime类型,在多种浏览器上下载文件从来没遇到过问题

如果bug只出现在一个浏览器上,那可以理解是浏览器问题,但是我拿了3部手机,一部华为一部小米一部vivo,这三部手机自带浏览器使用alist下载文件均会出现这种bug,请问还是浏览器问题吗,我想应该是alist没有兼容这三个品牌手机浏览器的内核吧

其实我们讨论这么多,你不妨用你手机自带浏览器试一下,看我说的bug存不存在,记得用3.25.1以上版本的alist

关于你的顺带一提,我回复如下,运行环境是什么?我不太懂,服务器是Windows Server2012系统,台式电脑是win10 2023H2系统,笔记本也是win10系统,服务器,台式机,笔记本,我都搭建了alist服务测试,都有这个bug,和电脑没有关系,手机是小米,华为,vivo,三部我都测试了,都有这个bug,和手机也没关系,网络环境,台式机是网线,笔记本是手机热点和路由器wifi,手机是5G和路由器wifi,多种网络我都测试过,bug依旧,和网络环境没关系

华为浏览器,edge,chrome,via,safari使用v3.36.0无论是通过局域网还是公网下载都没有问题,所以我觉得大概率是你自己的问题。

SutoLiu commented 1 week ago

我使用的是小米应用商店下载的107.0.5304.105版本chrome,你那个版本我从百度上搜索下载安装了,但是打不开,难道是需要谷歌服务什么的?我用chrome,10次大概有两三次下载文件损坏,用火狐浏览器,不管如何下载,下载多少次,一次损坏都没有,所以可以完全排除网络问题,5G网络,wifi,我都试了,网络环境好得很

我明白浏览器内核众多,环境复杂,网站很难保证完全兼容,但是最基本的下载功能做到兼容不难吧,我随便用iis建立一个站点,打开目录浏览,设置好mime类型,在多种浏览器上下载文件从来没遇到过问题

如果bug只出现在一个浏览器上,那可以理解是浏览器问题,但是我拿了3部手机,一部华为一部小米一部vivo,这三部手机自带浏览器使用alist下载文件均会出现这种bug,请问还是浏览器问题吗,我想应该是alist没有兼容这三个品牌手机浏览器的内核吧

其实我们讨论这么多,你不妨用你手机自带浏览器试一下,看我说的bug存不存在,记得用3.25.1以上版本的alist

关于你的顺带一提,我回复如下,运行环境是什么?我不太懂,服务器是Windows Server2012系统,台式电脑是win10 2023H2系统,笔记本也是win10系统,服务器,台式机,笔记本,我都搭建了alist服务测试,都有这个bug,和电脑没有关系,手机是小米,华为,vivo,三部我都测试了,都有这个bug,和手机也没关系,网络环境,台式机是网线,笔记本是手机热点和路由器wifi,手机是5G和路由器wifi,多种网络我都测试过,bug依旧,和网络环境没关系

华为浏览器,edge,chrome,via,safari使用v3.36.0无论是通过局域网还是公网下载都没有问题,所以我觉得大概率是你自己的问题。

这个文件损坏bug只在使用本机存储+多线程的时候出现,挂载网盘是不会出现的,不是人家的问题,就是bug,存在很久了

jkakakakkdkdj commented 1 week ago

对的,挂载网盘不会出这个问题,只有挂载本机存储的时候,使用手机自带浏览器,快速点击5次下载,所下载的5个文件部分会损坏导致md5变化,终于有懂我的老哥了

SutoLiu commented 1 week ago

对的,挂载网盘不会出这个问题,只有挂载本机存储的时候,使用手机自带浏览器,快速点击5次下载,所下载的5个文件部分会损坏导致md5变化,终于有懂我的老哥了

我试了下,不止本机存储多线程会导致文件损坏,任何网盘使用本地代理+多线程下载大概率就文件损坏了,问题应该出在这个“本地代理”上

creeper2020 commented 1 week ago

9ce07f8f0be8bc8a0ab7394c07b6358 HTTP/1.1 206 Partial Content Accept-Ranges: bytes Content-Disposition: attachment; filename="Emby for Android_3.2.32_v17.41(Carnival) (2).apk"; filename*=UTF-8''Emby%20for%20Android_3.2.32_v17.41%28Carnival%29%20%282%29.apk Content-Length: 35167725 Content-Range: bytes 35167724-70335448/70335449 Content-Type: application/vnd.android.package-archive Last-Modified: Thu, 27 Jun 2024 11:16:43 GMT Date: Tue, 03 Sep 2024 13:54:02 GMT 抱歉我是真的复现不了,你可以看到我是多线程下载,然后无论我是使用网盘本地代理还是直接使用本地储存均没有出现过你们的问题

jkakakakkdkdj commented 1 week ago

我感觉应该是浏览器内核不兼容,您是什么手机什么型号,我百度查一下您手机自带浏览器是什么内核

creeper2020 commented 1 week ago

我感觉应该是浏览器内核不兼容,您是什么手机什么型号,我百度查一下您手机自带浏览器是什么内核

User-Agent: Mozilla/5.0 (Linux; Android 12; HarmonyOS; ANA-AN00; HMSCore 6.14.0.302; GMSCore 0.3.2.240913) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.5735.196 HuaweiBrowser/15.0.6.301 Mobile Safari/537.36

SutoLiu commented 1 week ago

9ce07f8f0be8bc8a0ab7394c07b6358 HTTP/1.1 206 Partial Content Accept-Ranges: bytes Content-Disposition: attachment; filename="Emby for Android_3.2.32_v17.41(Carnival) (2).apk"; filename*=UTF-8''Emby%20for%20Android_3.2.32_v17.41%28Carnival%29%20%282%29.apk Content-Length: 35167725 Content-Range: bytes 35167724-70335448/70335449 Content-Type: application/vnd.android.package-archive Last-Modified: Thu, 27 Jun 2024 11:16:43 GMT Date: Tue, 03 Sep 2024 13:54:02 GMT 抱歉我是真的复现不了,你可以看到我是多线程下载,然后无论我是使用网盘本地代理还是直接使用本地储存均没有出现过你们的问题

有安卓mt管理器vip的话,可以试试使用mt管理器,添加一个Alist本机存储的WebDav,然后选择使用多线程,几乎可以百分百复现,或者电脑使用IDM多线程下载一个大一些的文件,也能稳定复现这个bugScreenshot_2024-09-03-22-08-44-625_bin.mt.plus.jpg

SutoLiu commented 1 week ago

9ce07f8f0be8bc8a0ab7394c07b6358 HTTP/1.1 206 Partial Content Accept-Ranges: bytes Content-Disposition: attachment; filename="Emby for Android_3.2.32_v17.41(Carnival) (2).apk"; filename*=UTF-8''Emby%20for%20Android_3.2.32_v17.41%28Carnival%29%20%282%29.apk Content-Length: 35167725 Content-Range: bytes 35167724-70335448/70335449 Content-Type: application/vnd.android.package-archive Last-Modified: Thu, 27 Jun 2024 11:16:43 GMT Date: Tue, 03 Sep 2024 13:54:02 GMT 抱歉我是真的复现不了,你可以看到我是多线程下载,然后无论我是使用网盘本地代理还是直接使用本地储存均没有出现过你们的问题

另外就是使用Via浏览器5.8.1,下载本机存储的apk,如果是大于1G以上的apk安装包几乎百分百损坏无法安装Screenshot_2024-09-03-22-13-42-745_bin.mt.plus.jpg

creeper2020 commented 1 week ago

9ce07f8f0be8bc8a0ab7394c07b6358 HTTP/1.1 206 Partial Content Accept-Ranges: bytes Content-Disposition: attachment; filename="Emby for Android_3.2.32_v17.41(Carnival) (2).apk"; filename*=UTF-8''Emby%20for%20Android_3.2.32_v17.41%28Carnival%29%20%282%29.apk Content-Length: 35167725 Content-Range: bytes 35167724-70335448/70335449 Content-Type: application/vnd.android.package-archive Last-Modified: Thu, 27 Jun 2024 11:16:43 GMT Date: Tue, 03 Sep 2024 13:54:02 GMT 抱歉我是真的复现不了,你可以看到我是多线程下载,然后无论我是使用网盘本地代理还是直接使用本地储存均没有出现过你们的问题

另外就是使用Via浏览器5.8.1,下载本机存储的apk,如果是大于1G以上的apk安装包几乎百分百损坏无法安装Screenshot_2024-09-03-22-13-42-745_bin.mt.plus.jpg

idm确实复现了,多线程下载不了会出问题

SutoLiu commented 1 week ago

我感觉应该是浏览器内核不兼容,您是什么手机什么型号,我百度查一下您手机自带浏览器是什么内核

不是浏览器内核的原因,使用pc上的idm下载器是没有用到浏览器内核的,多线程一样文件损坏

cloudprtop commented 1 week ago

这个问题好像只存在于挂载本地存储