hadimodarres / uploader_service
S3上传服务
Requires
- php: ^7.2
- ext-json: ^1.6
- aws/aws-sdk-php: ^3.108
- monolog/monolog: ^1.24
- symfony/console: ^4.3
- symfony/finder: ^4.3
Requires (Dev)
- symfony/var-dumper: ^4.3
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()
命令将自动合并配置与通过命令行指定的选项。这意味着您可以通过传递不完整的配置,并通过终端进行其余配置。
请注意,通过终端指定的选项将覆盖通过程序指定的选项。