ctala / yii2-aws-s3
Yii2 S3 类的容器
V0.6
2015-10-27 14:04 UTC
Requires
- php: >=5.5.0
- aws/aws-sdk-php: 3.0.*
- yiisoft/yii2: 2.*
README
作为 Yii2 组件的 Amazon S3Client 封装。
Yii2 AWS S3 只能在一个组件配置中与 一个 存储桶一起工作。
该组件目前支持 CloudFront(为 S3 存储桶中的对象获取 CDN URL)。
安装
-
运行 Composer 命令以安装最新稳定版本
composer require ctala/yii2-aws-s3 -
将组件添加到
config/main.php'components' => [ // ... 's3bucket' => [ 'class' => \CTala\Storage::className(), 'region' => 'your region', 'credentials' => [ // Aws\Credentials\CredentialsInterface|array|callable 'key' => 'your aws s3 key', 'secret' => 'your aws s3 secret', ], 'bucket' => 'your aws s3 bucket', 'cdnHostname' => 'http://example.cloudfront.net', 'defaultAcl' => \CTala\Storage::ACL_PUBLIC_READ, 'debug' => true, // bool|array ], // ... ],
使用方法
上传对象
// creating an object $data = ['one', 'two', 'three']; Yii::$app->get('s3bucket')->put('path/to/s3object.ext', Json::encode($data)); // uploading an object by streaming the contents of a stream $resource = fopen('/path/to/local/file.ext', 'r+'); Yii::$app->get('s3bucket')->put('path/to/s3object.ext', $resource);
上传文件
Yii::$app->get('s3bucket')->upload('path/to/s3object.ext', '/path/to/local/file.ext');
使用自定义选项通过分片上传上传大文件
$concurrency = 5; $minPartSize = 536870912; // 512 MB Yii::$app->get('s3bucket')->multipartUpload( 'path/to/s3object.ext', '/path/to/local/file.ext', $concurrency, $minPartSize );
读取对象
/** @var \Aws\Result $result */ $result = Yii::$app->get('s3bucket')->get('path/to/s3object.ext'); $data = $result['Body'];
将对象保存到文件
Yii::$app->get('s3bucket')->get('path/to/s3object.ext', '/path/to/local/file.ext');
删除对象
Yii::$app->get('s3bucket')->delete('path/to/s3object.ext');
获取普通 URL
$url = Yii::$app->get('s3bucket')->getUrl('path/to/s3object.ext');
创建预签名 URL
$url = Yii::$app->get('s3bucket')->getPresignedUrl('path/to/s3object.ext', '+10 minutes');
获取 CDN URL
$url = Yii::$app->get('s3bucket')->getCdnUrl('path/to/s3object.ext');
列出对象
$result = Yii::$app->get('s3bucket')->getList('path/'); foreach ($result['Contents'] as $object) { echo $object['Key'] . PHP_EOL; }
##变更日志
- 0.6 : 添加了创建文件夹,添加了所有文件的迭代器。