tuyenlaptrinh/php-mega-nz

连接到 mega.nz API 的 php API 包装器

1.0 2022-10-18 18:57 UTC

This package is auto-updated.

Last update: 2024-09-18 23:21:26 UTC


README

一个完全面向对象的模式连接到 mega.nz API 的 php API 包装器。

此库在调用 mega 服务器时确保不禁用 https 证书检查。

此 API 正在建设中,其中只有少数方法可用,但欢迎贡献!

此库受 smartinm/mega-php-client 库和 Julien Marchand 的教程 的启发。

安装

此库的安装通过 composer 完成。从 他们的网站 下载 composer.phar。然后在您的 composer.json 中添加

	"require": {
		...
		"tuyenlaptrinh/php-mega-nz": "^1",
		...
	}

然后运行 php composer.phar update 以安装此库。此库中所有类的自动加载通过 composer 的自动加载器完成。

基本用法

对于下载 mega 上的文件夹文件并将其放入您的文件系统中的文件夹,请参阅 示例脚本

此库提供了一个 API 来查看文件并下载它们,如下所示

构造函数需要访问 mega 的完整 URL。这意味着 URL 片段应包含节点 ID 和解密节点的密钥。 Mega::__construct(string $full_url):Mega

创建一个新的 Mega 对象后,您可以使用以下方法搜索其根文件夹:Mega::getRootNodeInfo():MegaNode;

一旦您拥有一个 MegaNode 对象,您可以使用以下方法搜索其子节点:Mega::getChildren(MegaNodeId $node_id):MegaNode[];

可以使用 MegaNode:getNodeId():MegaNodeId 方法获取 MegaNodeId 对象。节点 ID 是引用层次结构中特定节点的通用对象,并且 Mega 类可以使用以下方法检索 MegaNode 对象:Mega::getNodeInfo(MegaNodeId $node_id):MegaNode

为了区分表示文件夹的节点和表示文件的节点,请使用 MegaNode::getNodeType():integer 方法。如果值是 MegaNode::TYPE_FOLDER,则该节点表示文件夹;如果值是 MegaNode::TYPE_FILE,则表示可下载的文件。

然后,要下载文件(由于显而易见的原因,文件夹不可下载),请使用 Mega::downloadFile(MegaNode $node):string 方法,该方法返回下载文件的原始字符串数据,未加密。

请注意,此方法不直接使用流到您的文件系统,如果文件非常大,则可能会使用大量内存。

要检查文件的大小(由于 mega API 的限制,文件夹没有大小),请使用 MegaNode::getNodeSize():integer 方法。请注意,32 位系统(或 32 位 php,如 windows 所用)可能无法很好地处理大文件的大小。

最后,由于各种因素,几乎所有此库的方法都会抛出 PhpExtended\Mega\MegaException,主要是因为可能在任何地方发生的加密错误。请记住使用 try { ... } catch(MegaException $e) { ... } 块封装对此库的调用。

许可

MIT(见 许可文件)。