glofox / cakephp-amazon-s3
为 CakePHP 使用的过时 Amazon S3 插件
dev-master
2019-04-09 20:36 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 auto-updated.
Last update: 2024-09-24 18:38:01 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');
要将任何额外的 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');