gianksp/cakephp-amazon-s3

CakePHP 的 Amazon S3 插件

dev-master 2017-06-05 16:55 UTC

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 桶中的文件

要求

安装

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');