php-extended/php-api-nz-mega-object

实现了 php-extended/php-api-nz-mega-interface 库的库


README

这是一个用于连接到 mega.nz API 的 php API 包装器,采用完全面向对象模式。

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

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

/!\ Mega 似乎对 file_get_contents() 函数的支持很差。/!\ 使用基于 curl 的 http 客户端以获得更好的性能。

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

coverage build status

安装

此库通过 composer 安装,并且通过其自动加载器自动加载此库的所有类。

  • 他们的网站下载 composer.phar
  • 然后运行以下命令将此库作为依赖项安装
  • php composer.phar require php-extended/php-api-nz-mega-object ^7

基本用法

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

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

构造函数需要访问 mega 的路径和密钥。 MegaEndpoint : : __construct(HttpJsonEndpoint $endpoint, string $full_url) : Mega

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

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

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

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

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

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

要检查文件大小(Mega 的 API 不提供文件夹大小),请使用 MegaNode : : getNodeSize() : integer 方法。请注意,32 位系统(或 32 位 php,如 Windows 所有)可能无法很好地处理大文件的大小。

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

许可证

MIT (见许可证文件).