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 密码,用于需要身份验证的代理。请避免使用包含 " 或 ' 的密码赞赏
微信赞赏
支付宝赞赏
发表评论