amarkhai/parallel-downloader-bundle

用于并发下载文件的包

v0.1 2022-01-14 18:40 UTC

This package is auto-updated.

Last update: 2024-09-15 00:41:58 UTC


README

安装

composer require amarkhai/parallel-downloader-bundle

用法

要下载,请使用方法 "download",传递一个 <string, string> 数组,其中值是您需要下载的文件的链接,键是用于保存文件的名称

    public function __construct(DownloadManager $downloadManager)
    {
        $this->downloadManager = $downloadManager;
    }
    
    public function foo()
    {
        $this->downloadManager->download([
            'filename1' => 'https://mysite.com/test1.png',
            'filename2' => 'https://mysite.com/test2.png',
            'filename3' => 'https://mysite.com/test3.png',
        ]);
    }

附加参数

download 方法有 2 个附加参数

  • subFolder - 下载文件夹内(见下文)的文件夹名称,其中列表中的文件将被保存
  • options - 应用到每个请求的 Guzzle 请求选项数组。

配置

可以在配置文件中更改一些参数

  • 文件保存文件夹
  • 下载失败后的重试次数
  • 并发发送的最大请求数量

以下是这些参数的默认值

# config/packages/amarkhai_parallel_downloader.yaml
parameters:
  amarkhai_parallel_downloader.download_files_folder: '%kernel.project_dir%/var/downloads'
  amarkhai_parallel_downloader.download_retry: 3
  amarkhai_parallel_downloader.download_concurrency: 10