hadimodarres/uploader_service

此软件包的最新版本(v1.0.1)没有提供许可信息。

S3上传服务

v1.0.1 2019-08-07 10:10 UTC

This package is not auto-updated.

Last update: 2024-09-27 10:04:54 UTC


README

此软件可用于递归扫描文件夹中的大文件并将它们上传到AWS S3存储桶。可选地,文件在成功上传后也可以被删除。

安装

作为Composer包

该软件可以作为依赖包使用Composer进行安装。

composer require hadimodarres/uploader_service

该软件包将安装到vendor/hadimodarres/uploader_service

下载

或者,您可以直接克隆存储库或将其作为ZIP文件下载。

git clone https://github.com/HadiModarres/uploader_service.git

之后,您仍然需要安装所有依赖项。

cd uploader_service
composer install

使用

程序化使用

require_once 'vendor/autoload.php';

$config = ( new \UploaderService\Config\Config() )
    ->setPath( '/absolute/path/to/folder/to/be/processed' )
    ->setSizeThreshold( '1k' )
    ->setS3Region( 'eu-west-1' )
    ->setS3Bucket( 'your-bucket' )
    ->setS3Key( 'your-key' )
    ->setS3Secret( 'your-secret' )
    ->setDelete( true ); // pass false if you don't want files to be deleted

$uploader = new \UploaderService\Service\Uploader( $config );
$uploader->scan(); // scan files
$uploader->upload(); // upload scaned files

如果您需要使用相同的配置重新扫描或重新上传文件,可以节省重新创建上传实例。您需要做的唯一一件事是调用

$uploader->clear(); // clear queue of scanned files

控制台输出

如果您在终端中运行上述代码,您可能希望看到一些关于正在发生的事情的精美输出。
您可以使用Symfony Console来实现这一点。

$uploader = new \UploaderService\Service\Uploader(

    $config,
    new \UploaderService\Service\Uploader\Output( new \Symfony\Component\Console\Output\ConsoleOutput(), null, true )
    
); 

日志记录

您也可以记录日志。
只需将一个Psr\Log\LoggerInterface传递给UploaderService\Service\Uploader\Output类的第二个参数即可。

只使用以下3个日志级别

  • debug - 用于操作通知和统计等琐事。
  • info - 用于文件上传和删除等成功操作。
  • error - 用于异常。
$uploader = new \UploaderService\Service\Uploader(

    $config,
    new \UploaderService\Service\Uploader\Output(
    
        new \Symfony\Component\Console\Output\ConsoleOutput(),
        ( new \Monolog\Logger( 'upload' ) )
            ->pushHandler( new \Monolog\Handler\StreamHandler( 'debug.log', \Monolog\Logger::DEBUG ) ),
        true
        
    )
    
); 

CLI使用

该软件包包含一个位于bin/cli.php的现成CLI可执行文件。
您可以使用php bin/cli.php upload ..或直接./bin/cli.php upload ..运行它。

您可以在命令行中指定所有配置选项的值。
有关更多信息和使用选项,请运行

./bin/cli.php upload --help

自定义CLI

如果您需要在终端中使用该软件包,但不想使用提供的bin/cli.php,您可以构建自己的Symfony Console兼容CLI。

require_once 'vendor/autoload.php';

$app = new \Symfony\Component\Console\Application();

$app->add( new \UploaderService\Command\Upload() );

// or also pass config:
//
// $config = ( new \UploaderService\Config\Config() )
//     ->setPath( '/absolute/path/to/folder/to/be/processed' );
//
// $app->add( new \UploaderService\Command\Upload( $config ) );
 
$app->run();

\UploaderService\Command\Upload()命令将自动合并配置与通过命令行指定的选项。这意味着您可以通过传递不完整的配置,并通过终端进行其余配置。

请注意,通过终端指定的选项将覆盖通过程序指定的选项。