php-extended/php-api-endpoint-http-zip

此包已废弃,不再维护。作者建议使用php-extended/php-http-client-zip包。

php-extended/php-api-endpoint-http-interface的实现,当查询响应时动态解压数据。


README

php-extended/php-api-endpoint-http-interface的实现,当查询响应时动态解压数据。

coverage build status

安装

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

  • 他们的网站下载composer.phar
  • 然后运行以下命令将此库作为依赖项安装
  • php composer.phar php-extended/php-api-endpoint-http-zip ^6

基本用法

此库需要多个条件才能运行

  • 首先,请求必须包含一个指向现有可写目录中可能有效文件的X-Php-Download-File头部。这是http客户端将下载文件的下载位置。
  • 其次,一个支持X-Php-Download-File头部的http客户端,将写入http请求的正文到该文件。
  • 第三,http客户端必须在响应中设置一个指向该相同文件的X-Request-Header-X-Php-Download-File头部。如果没有,它可能会设置一个X-Php-Download-File头部。
  • 第四,http客户端必须提供一个指向该文件的流作为响应。

此端点所做的是,对于每次请求文件,它都会尝试在同一目录中将其解压为新的名称。它将替换请求中现有的X-Request-Header-X-Php-Download-FileX-Php-Download-File头部,以指向新的未压缩文件,并将响应的流更改为指向新文件的新流。如果解压缩操作成功,将删除请求中X-Php-Download-File头部请求的旧文件。


/* @var $httpEndpoint \PhpExtended\Endpoint\EndpointInterface */

$zipEndpoint = new ZipHttpEndpoint($httpEndpoint);

$stream = $zipEndpoint->httpGet($zipEndpoint->createUri('https://example.com/path/to/file.zip'), [
	'X-Php-Download-File' => '/tmp/file.zip',
]);

/* @var $stream \Psr\Http\Message\StreamInterface */

一旦你完成流的使用,你可以删除该文件(使用流的元数据可以找到文件名)。或者,使用$zipEndpoint->httpGetResponse()你将获得http响应而不是仅流,并且可以通过X-Php-Download-File头部获取文件路径。

许可证

MIT(见许可证文件)。