Skip to content
New issue

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

在剩余点数充足时遇到多个下载错误 (包括 Wrong MIME 和 Network Error) #280

Open
ZFirozen opened this issue Feb 18, 2024 · 6 comments

Comments

@ZFirozen
Copy link

错误界面如下:
image
发生的条件:正在下载一个有一百余张图的图库,开始下载前,预估的点数消耗不会超过限制。除了以上这几个下载错误,还有另外个别图片也发生过错误,但在我调整同时下载数量为1以后,重新尝试了几次后成功了,其他图片均已成功下载。
通过打开调试器检查访问的URL,在这几张图片中,有两张的URL可以通过浏览器打开,另外两张分别遇到 Invalid request 和意外中止连接错误。
日志显示的详细信息是

[EHD] #62: Wrong Content-Type
[EHD] #63: Wrong Content-Type
[EHD] #64: Wrong Content-Type
[EHD] #75: Network Error

其他补充:

  • 这几张图片的大小似乎都超过或者接近至少10MB
  • 在下载失败后我手动中止过下载过程,然后再恢复,中途多次访问主页,在主页上看到我没有超过点数限制(指低于3000点数)

除了这些未知问题导致的下载错误,一个可能的已知问题是:在下载过大的图片时,如果并发数过多可能导致这些图片全部下载失败;这种情况难以预测,可能只能在尝试更低的并发数时才能确认。

@ZFirozen
Copy link
Author

怀疑一个可能的原因是:实际上点数已经耗尽,但是刷新主页获得的点数信息并不准确,因为我尝试在网页中阅览这几张图片(通过画廊打开,而非调试器日志中给出的链接)时会遇到“达到临时限制 (You have temporarily reached the limit for how many images you can browse)”的提示。

@ccloli
Copy link
Owner

ccloli commented Feb 18, 2024

尝试下载过一张 10MB 以上大小的图片,没有复现该问题

上述问题有可能是服务器不稳定,在前几个月的某次更新后,原始图片现在也会通过 H@H 分发,所以这可能是服务器下发的图片地址对应的 H@H 节点访问不稳定或服务器不可用(例如缓存被删除)等情况。一般在尝试下载多次失败重试时,脚本会尝试重新获取图片地址,此时 EH 有可能会返回其他服务器的地址。

此外如果使用了代理服务器,那么也有可能是代理服务器不稳定。

实际上点数已经耗尽,但是刷新主页获得的点数信息并不准确,因为我尝试在网页中阅览这几张图片(通过画廊打开,而非调试器日志中给出的链接)时会遇到“达到临时限制 (You have temporarily reached the limit for how many images you can browse)”的提示。

如果你使用了多个代理服务器,而使用代理服务器时使用了类似负载均衡之类的技术,那么有可能是某个服务器已经达到了额度,出现了该问题。EH 给出的额度信息理论上是准确的,但这个额度一般是和 IP 绑定的,所以在多 IP + 与他人共用的情况下,可能会出现某个 IP 超出了配额。

另外,下载比较老的图片时,EH 可能会消耗 GP 或 credit,如果没有足够的 GP 或 credit 也可能会提示上述错误信息。

@ZFirozen
Copy link
Author

刚刚从搜索列表里选择了一个较新的作品:https://e-hentai.org/g/2832818/f89848f6a9/
在下载时全部遇到了网络错误 (Network Error)
image
但直接点击日志中给出的最终地址,浏览器却可以正常访问和下载图片(我随机测试了几个)

[EHD] #6: RealIndex > 6  | ReadyState > 4  | Status > 0  | StatusText > 
Request URL > https://e-hentai.org/fullimg/2832818/6/5ahog49a64y/_6.jpg?nl=27778-474514 
Final URL > https://e-hentai.org/fullimg/2832818/6/5ahog49a64y/_6.jpg?nl=27778-474514 
ResposeHeaders >
[EHD] #8: RealIndex > 8  | ReadyState > 4  | Status > 0  | StatusText > 
Request URL > https://e-hentai.org/fullimg/2832818/8/hbhdd0pa64y/_8.jpg?nl=46064-474514 
Final URL > https://e-hentai.org/fullimg/2832818/8/hbhdd0pa64y/_8.jpg?nl=46064-474514 
ResposeHeaders >
[EHD] #9: RealIndex > 9  | ReadyState > 4  | Status > 0  | StatusText > 
Request URL > https://e-hentai.org/fullimg/2832818/9/go79qa1a64y/_9.jpg?nl=20694-474514 
Final URL > https://e-hentai.org/fullimg/2832818/9/go79qa1a64y/_9.jpg?nl=20694-474514 
ResposeHeaders >

并且多次刷新都可以访问,只是速度相对较慢(大约100~300KB/s,我没有修改过EHD的低下载速度相关设置)。

@ccloli
Copy link
Owner

ccloli commented Feb 18, 2024

Network Error 多半是网络不稳定,比如网络连接中断之类的。由于该错误是浏览器(或用户脚本扩展程序)直接抛出的,脚本无法解决此问题。且由于用户脚本的 API 限制,目前无法实现类似断点续传之类的功能,此时只能重新下载。

@ZFirozen
Copy link
Author

了解了,谢谢。再稍微对这种情况提一点改进建议,在下载失败的情况下能否将失败项的URL直接显示在页面上,用户通过在浏览器内访问链接来手动尝试下载这些图片(如果链接能够被打开)。

@ccloli
Copy link
Owner

ccloli commented Feb 18, 2024

在下载失败的情况下能否将失败项的URL直接显示在页面上,用户通过在浏览器内访问链接来手动尝试下载这些图片

可以考虑加个例如按住 Ctrl 键后,点击文件名跳转的功能

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

No branches or pull requests

2 participants