好像已经有很长时间,我没办法使用浏览器来使用 mega 了,一直是转圈。不晓得是什么原因, 所以有一段时间我都是在使用手机端的 mega,但是这样就又多了一个转移到电脑的动作。 今天,我又想简化一下我的生活了,于是就有了今天的故事。
我在 scoop 上看到这么一个工具:
就想起了我那多年未解的难题:浏览器版本的 mega 不晓得出了什么问题,我没办法使用了。 所以我需要先用手机 app 下载 mega 资源 ,然后再自己传到电脑上去。 那么,我有没有可能用这个工具来达成在电脑上下载资源呢?
简单查了一下,我觉得这个工具甚至比移动端的 mega app 更符合我的要求, 因为一般我也就是用它下载别人分享的资源,以前是不需要登录的,但是似乎使用移动端就一定要登录了, 看来如果这个工具可以使用,那我也就可以卸载移动端应用了。
根据官方的说明档,其实我这个需求很简单,一个命令就搞定了:
megatools dl "https://mega 链接"
不过事情肯定没有那么简单,不然我也不会在这里唠叨了,我这里执行这个命令时报错了:
ERROR: Download failed for 'https://mega.nz/file/____#____': API call 'g' failed: HTTP POST failed: CURL error: SSL connect error
这个报错的信息也是一个新手劝退点,如果我心情不好估计很可能得出结论:不好用,卸载。 不过今天我有些莫名其妙,curl 怎么就无法建立 ssl 连接了?为此我还专门试了一下 curl:
curl "https://mega.nz/file/____#____"
StatusCode : 200
StatusDescription : OK
Content : <!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta property="og:title" content="xxx.xx MB file on MEGA" />
<meta property="og:url" content="https://mega.nz/file/____" />
<met...
RawContent : HTTP/1.1 200 OK
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: MEGA-Chrome-Antileak
Access-Control-Max-Age: 86400
Strict-Transport-Security: max-age=63072000; includeSubDomains; prel...
Forms : {}
Headers : {[Access-Control-Allow-Origin, *], [Access-Control-Allow-Headers, MEGA-Chrome-Antileak], [Access-Co
ntrol-Max-Age, 86400], [Strict-Transport-Security, max-age=63072000; includeSubDomains; preload]...
}
Images : {}
InputFields : {}
Links : {@{innerHTML=; innerText=; outerHTML=<a id="dllink" style="display: none;" href="" download="filena
me"></a>; outerText=; tagName=A; id=dllink; style=display: none;; href=; download=filename}}
ParsedHtml : mshtml.HTMLDocumentClass
RawContentLength : xxxx
看上去也没什么异常,也可以正常访问。不过 PowerShell 的 curl 是 Invoke-WebRequest 的别名, 并不是真正的 curl,所以为了严谨我们还是在 msys2 上跑一下真正的 curl:
curl "https://mega.nz/file/____#____"
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta property="og:title" content="xxx.xx MB file on MEGA" />
<meta property="og:url" content="https://mega.nz/file/____" />
...
也没有什么问题,但是报错信息显示的是 curl。那估计这个「curl」 指的是 megatools 内嵌的 curl 了,但是这个问题要怎么解呢?
就在我百思不得其解的时候,我看到了一个参数 —proxy
,
与 mega 相关的网络问题无外乎本地 ISP 对访问进行限制,这时我们要通过代理绕过这个限制。
加个参数并不难,我们先试一下,不行了再卸载也不迟:
megatools dl "https://mega 链接" --proxy localhost:7890
很神奇,居然成功了。这我就更理解不了了,因为其实我这个网络的代理是挂在路由器上的, 按道理我不应该需要再设代理才对。目前我只能理解为由于某种原因, megatools 的网络请求绕过了路由器的代理机制。
本文介绍了使用 megatools 下载 mega 资源时出现的 SSL 连接错误, 以及通过添加代理参数解决该问题的过程。作者在使用 megatools 下载资源时遇到了问题, 通过使用代理绕过了 ISP 的限制,最终成功下载了资源。
以上总结为 Notion AI 代写,其实只是为了提醒下后来的自己或其他刚使用 megatools 的朋友, 如果你的 megatools 也无法正常工作,不妨也设个代理试试, 因为 megatools 的内部机制可能会绕过现有的代理配置。