glofox/cakephp-amazon-s3

为 CakePHP 使用的过时 Amazon S3 插件

安装: 28

依赖: 0

建议者: 0

安全性: 0

星标: 0

关注者: 3

分支: 1

开放问题: 0

类型:cakephp-plugin

dev-master 2019-04-09 20:36 UTC

This package is auto-updated.

Last update: 2024-09-24 18:38:01 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');

要将任何额外的 AWS 头部添加到 put,例如将文件设置为“公共”,可以将它们作为数组传递给 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');