mm0 / image-manager
具有AWS S3集成的图像管理器
Requires
- aws/aws-sdk-php: 2.*
- monolog/monolog: ^1.20
Requires (Dev)
- phpunit/phpunit: ^4.8
This package is not auto-updated.
Last update: 2024-09-29 00:52:01 UTC
README
此软件包作为PSR-0命名空间库创建,可通过PHP Composer安装。
使用此库需要非常少的配置。
只需配置要监控的各个图像目录,并将其自动推送到S3,可选地在上传后删除文件。
需求
- PHP 5+
- PHP Composer
- (可选) AWS CLI
- (可选) GCS CLI
- (SSH所需) libssh2-php
- php5-curl (guzzle所需)
- vagrant 1.9
- vagrant-vbguest插件(vagrant plugin install vagrant-vbguest)
安装
将此存储库包含在您的库的composer.json包中
运行composer install
如果您想使用Vagrant进行测试,请确保安装Ansible依赖项
ansible-galaxy install -v -r ansible/requirements.yml -p ansible/roles
配置
SSH连接配置
$ssh_host = "127.0.0.1"; // or DNS name
$ssh_port = 22;
$ssh_user = "vagrant";
$ssh_public_key = "/path/to/public_key";
$ssh_private_key = "/path/to/private_key";
$ssh_config = new \mm0\ImageManager\Configuration\SSH (
$ssh_host,
$ssh_port,
$ssh_user,
$ssh_public_key,
$ssh_private_key,
'', // ssh key passphrase
array('hostkey' => 'ssh-rsa')
);
然后我们使用此配置对象创建一个连接对象
$connection = new \mm0\ImageManager\SSH\Connection($ssh_config);
$connection->setSudoAll(true); // set this to true if you are using a non-root user to SSH
或者,您也可以不通过SSH连接到MySQL Box,而是在服务器上直接运行此库,使用LocalShell/连接对象
LocalShell连接配置
$connection = new \mm0\ImageManager\LocalShell\Connection()
保存模块
保存模块确定我们将存储我们的备份的位置。您可以在数组中指定一个或多个保存模块
到目前为止,我们只实现了AWS S3和GCS保存模块。目标是使用相同的接口实现额外的模块,以便我们能够通过简单地添加保存模块数组的配置来将存档扩展到更多提供商
AWS S3保存模块
为了使用本地模块,我们必须使用LocalShell连接,因为此库和composer依赖项(AWS-PHP-SDK)是必需的。
使用SSH连接,我们受到限制,因为我们没有在此库中的副本
// Specify the storage module for the backup to use (local or remote SSH)
$s3_save_module = new \mm0\ImageManager\AWS\Uploader(
$connection,
$bucket,
$region,
$concurrency
);
用法
有关更多示例,请参阅./Examples
目录或测试
测试
AWS、GCS(可选)配置
You must configure your aws cli by adding api key credentials to:
/home/vagrant/.aws/boto
and configure gsutil by running
gsutil configure
You may have to update tests to reference personal buckets as well.
启动Vagrant
vagrant up
登录虚拟机
vagrant ssh
转到共享目录
cd /var/www
安装composer包
composer install --dev
创建SSH密钥
ssh-keygen
(按回车键几次)
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
运行PHPUnit
./vendor/bin/phpunit -v --debug
要查看完整的测试覆盖率,请运行
./vendor/bin/phpunit --debug --verbose --coverage-html html
TODO
- 完成测试
许可证
版权(c)2017,Matt Margolin
版权所有。
重新分发和使用源代码和二进制代码,无论是否修改,只要满足以下条件即可
-
源代码的重新分发必须保留上述版权声明、本列表中的条件和以下免责声明。
-
二进制形式的重新分发必须复制上述版权声明、本列表中的条件和以下免责声明在随分发提供的文档或其他材料中。
-
未经版权所有者或其贡献者的明确书面许可,不得使用其名称或其贡献者的名称来认可或推广从本软件派生的产品。
本软件由版权所有者和贡献者提供,按“原样”提供,并明确或隐含地放弃包括但不限于以下任何保证:适销性保证和特定用途适用性保证。在任何情况下,版权所有者或贡献者均不对任何直接、间接、偶然、特殊、示范性或后果性损害(包括但不限于替代货物或服务的采购;使用、数据或利润的损失;或业务中断)承担责任,无论损害发生的原因是什么,也不论是根据合同、严格责任还是侵权(包括疏忽或其他)引起的责任,即使已被告知可能发生此类损害。
作者信息
mm0 在github上