Mega-cmd的使用误区

Mega-cmd的使用误区

以前一直认为mega-cmd是一个纯命令行客户端工具,没有研究过原理,导致错误使用,甚至一度思考使用GUI的桌面客户端是否支持传参调用。后面才发现mega-cmd 是一个client + server的组合,是满足代码调用,不用考虑下载传输中断这类异常的情况。

在代码中调用mega-cmd下载

由于mega官方并没有提供python的SDK,所以没办法直接import第三方包用代码下载mega link。但是可以在代码里面直接subprocesss调用mege-get的命令,

root@zgao-ubuntu-dev:~# mega-get --help
用法:get [-m] [-q] [--ignore-quota-warn] [--use-pcre] [--password=PASSWORD] exportedlink|remotepath [localpath]
下载远程文件/文件夹或公共链接

如果是文件,该文件将被下载到指定的文件夹
(如果未指定,则下载到当前文件夹)。
  如果localpath(目标)已存在且相同(内容相同),
  则不会执行任何操作。如果不同,它将创建一个新文件,附加“ (NUM)”

对于文件夹,整个内容(以及根文件夹本身)将
默认情况下下载到目标文件夹

导出链接:导出链接通常形成为publiclink#key。
或者,您可以提供受密码保护的链接,并
使用--password提供密码。请避免使用包含"或'的密码


选项:
 -q     队列下载:在后台执行。不要等待它结束
 -m     如果文件夹已存在,则其内容将与
                     下载的内容合并(保留现有文件)
 --ignore-quota-warn    忽略超出配额的警告。无论如何都会尝试下载。
 --password=PASSWORD    用于解密受密码保护的链接的密码。请避免使用包含"或'的密码
 --use-pcre     使用PCRE表达式

之前误认为mega只是一个单纯的客户端工具,是不支持后台下载的。但是mega-cmd是CS架构,可以指定-q参数,放入后台让mega-cmd-server进行下载。代码可以通过监控本地文件是否还有新的写入来判断,文件是否下载完成。

查看mega下载进度

root@zgao-ubuntu-dev:~# mega-transfers --help
用法: transfers [-c TAG|-a] | [-r TAG|-a]  | [-p TAG|-a] [--only-downloads | --only-uploads] [SHOWOPTIONS]
列出或操作传输

如果未指定选项执行,则会列出前 10 个传输
选项:
 -c (TAG|-a)    取消带有 TAG 的传输(或使用 -a 取消全部)
 -p (TAG|-a)    暂停带有 TAG 的传输(或使用 -a 暂停全部)
 -r (TAG|-a)    恢复带有 TAG 的传输(或使用 -a 恢复全部)
 --only-uploads 仅显示/操作上传传输
 --only-downloads       仅显示/操作下载传输

显示选项:
 --summary      打印正在进行的传输的摘要
 --show-syncs   显示同步传输
 --show-completed       显示已完成的传输
 --only-completed       仅显示已完成的下载
 --limit=N      仅显示前 N 个传输
 --path-display-size=N  使用至少 N 个字符来显示路径
 --col-separator=X      使用字符串 "X" 作为列分隔符。否则,将在列之间添加空格以对齐它们。
 --output-cols=COLUMN_NAME_1,COLUMN_NAME2,...   选择要显示的列及其顺序。

TYPE 图例对应关系:
  ⇓ =   下载传输
  ⇑ =   上传传输
  ⇵ =   同步传输。传输在同步的上下文中完成
  ⏫ =  备份传输。传输在备份的上下文中完成

mega设置代理

同时支持socks和http的代理,mega配置机场的代理,部署在国内的服务器上下载速度非常快。

rroot@zgao-ubuntu-dev:~# mega-proxy --help
用法: proxy [URL|--auto|--none] [--username=USERNAME --password=PASSWORD]
显示或设置代理配置

未提供参数时,将打印代理配置

选项:
URL     代理 URL (例如: https://127.0.0.1:8080)
 --none 禁用代理
 --auto 使用系统中配置的代理
 --username=USERNAME    用户名,用于需要身份验证的代理
 --password=PASSWORD    密码,用于需要身份验证的代理。请避免使用包含 " 或 ' 的密码
赞赏

微信赞赏支付宝赞赏

Zgao

愿有一日,安全圈的师傅们都能用上Zgao写的工具。

发表评论