aensley / media-organizer
将图片和视频(或任何文件)组织成基于日期的文件夹。
1.0.2
2016-07-06 22:03 UTC
Requires
- php: >=5.5.0
Requires (Dev)
- codacy/coverage: dev-master
- codeclimate/php-test-reporter: dev-master
- phpunit/phpcov: dev-master
- satooshi/php-coveralls: 1.0.x-dev
Suggests
- bramus/monolog-colored-line-formatter: Colored log output in bash
- monolog/monolog: Advanced logging options
This package is not auto-updated.
Last update: 2024-09-21 12:14:09 UTC
README
将图片和视频(或任何文件)组织成基于日期的文件夹。
它做什么
对于急迫的读者描述:这个库将文件从一个地方移动到另一个地方。
详细描述:这个库帮助将文件组织成基于日期的文件夹。日期可以通过多种可配置的方式从每个文件中检索。基于日期的文件夹的结构可以按您的任何方式设计。
这主要编写用于组织JPG图片,但它适用于任何类型的文件。可用的日期检索方法包括
- EXIF - 从文件的EXIF数据中检索日期(仅限JPG和TIFF图片)。
- 文件名掩码 - 匹配文件名中的日期/时间模式。
- 修改时间 - 使用文件的“最后修改”时间。此属性由操作系统设置,通常不如前两种可靠。
安装
使用以下命令安装最新版本
composer require aensley/media-organizer
选项
配置文件
您可以选择任意数量的配置文件进行处理。它们将按顺序处理。每个配置文件都可以有自己的单独选项。可用的选项在代码中有文档说明。
记录器
您可以为自定义处理日志消息指定实现PRS-3 Logger Interface的记录器对象。我推荐Monolog(以及monolog-colored-line-formatter,以在bash中获得额外加分)。
否则,您可以为要使用的日志级别指定一个字符串(以下之一:'none', 'error', 'warning', 'info', 'debug'),使用简单的内部记录器。内部记录器直接输出消息后跟换行符 \n
。
需求
- PHP >= 7.1
示例用法
简单示例
<?php require '/path/to/composer/autoload.php'; $organizer = new \Aensley\MediaOrganizer\MediaOrganizer( array( 'images' => array( 'source_directory' => '/data/unorganized_pictures/', 'target_directory' => '/data/Organized/Pictures/', 'valid_extensions' => array('jpg'), ), 'videos' => array( 'source_directory' => '/data/unorganized_videos/', 'target_directory' => '/data/Organized/Videos/', 'valid_extensions' => array('mp4'), 'scan_exif' => false, ), ), 'debug' ); $organizer->organize();
高级用法
<?php require '/path/to/composer/autoload.php'; use \Monolog\Logger; use \Monolog\Handler\StreamHandler; use \Bramus\Monolog\Formatter\ColoredLineFormatter; use \Aensley\MediaOrganizer\MediaOrganizer; $logger = new Logger('mediaOrganizer'); // Colored output in Bash $handler = new StreamHandler('php://stdout', Logger::DEBUG); $handler->setFormatter(new ColoredLineFormatter()); $logger->pushHandler($handler); // Put everything in a log file, too. $logger->pushHandler(new StreamHandler('/var/log/mediaOrganizer/mediaOrganizer.log', Logger::DEBUG)); $organizer = new MediaOrganizer( array( 'images' => array( 'source_directory' => '/data/unorganized_pictures/', 'target_directory' => '/data/Organized/Pictures/', 'valid_extensions' => array('jpg'), ), 'videos' => array( 'source_directory' => '/data/unorganized_videos/', 'target_directory' => '/data/Organized/Videos/', 'valid_extensions' => array('mp4'), 'scan_exif' => false, ), 'gifs' => array( 'source_directory' => '/data/unorganized_gifs/', 'target_directory' => '/data/Organized/Gifs/', 'valid_extensions' => array('gif'), 'scan_exif' => false, 'file_name_masks' => false, 'modified_time' => true, 'search_recursive' => true, 'target_mask' => 'Y/F/d', 'overwrite' => true, ), ), $logger ); $organizer->organize();