gianksp / cakephp-amazon-s3
CakePHP 的 Amazon S3 插件
dev-master
2017-06-05 16:55 UTC
Requires
- php: >=5.3.0
- aws/aws-php-sns-message-validator: ^1.1
- aws/aws-sdk-php: ^3.23
- doctrine/cache: ^1.6
Requires (Dev)
- phpunit/phpunit: 3.7.*
This package is not auto-updated.
Last update: 2024-09-15 04:05:27 UTC
README
一个用于与 Amazon Web Services S3 对象交互的 CakePHP 插件。此插件提供简单而健壮的方法,可以将它们添加到任何 CakePHP 项目中以完成以下任务:
- 从 S3 桶中检索远程文件并本地保存
- 将本地文件保存到 S3 桶中
- 删除 S3 桶中的文件
要求
- CakePHP 2.x
- Amazon Web Services 账户 (http://aws.amazon.com/s3/)
- 您的 AWS 访问密钥和秘密密钥
安装
composer require gianksp/cakephp-amazon-s3:dev-master
使用示例
请记得将 CakePlugin::load('AmazonS3');
添加到您的应用程序引导文件中。
然后,使用您的 AWS 访问密钥、秘密密钥以及您要工作的桶名称简单地初始化插件。
App::uses('AmazonS3', 'AmazonS3.Lib'); $AmazonS3 = new AmazonS3(array('{access key}', '{secret key}', '{bucket name}'));
GET
get
方法检索远程文件并将其保存到本地。例如,假设在 S3 上有一个名为 foo.jpg
的文件,并且您想将其保存到本地 /home/me/stuff/photos
目录中,您将使用以下命令。
$AmazonS3->get('foo.jpg' , '/home/me/stuff/photos');
PUT
put
方法与 get
方法的操作相反,并将本地文件保存到 S3。
$AmazonS3->put('/home/me/stuff/photos/foo.jpg');
您可以选择指定一个远程目录来保存文件,确保不要在远程目录字符串中包含起始 /。
$AmazonS3->put('/home/me/stuff/photos/foo.jpg' , 'some/folder');
要向 put
添加任何额外的 AWS 头部,例如将文件设置为“公开”,可以将它们作为数组传递给 amazonHeaders
属性。
$AmazonS3->amazonHeaders = array( 'x-amz-acl' => 'public-read', 'X-Amz-Meta-ReviewedBy' => 'john.doe@yahoo.biz' ); $AmazonS3->put('/home/me/stuff/photos/foo.jpg' , 'some/folder');
DELETE
从 S3 删除文件。
$AmazonS3->delete('foo.jpg');
或从桶中的目录内部删除。确保不要在字符串中包含起始 /,否则您将收到 SignatureDoesNotMatch 错误。
$AmazonS3->delete('some/folder/foo.jpg');