bahirul / yii2-simple-s3
此包已被废弃,不再维护。没有建议的替代包。
自定义S3文件系统的简单Yii2扩展
0.0.2
2020-05-03 03:42 UTC
Requires
- league/flysystem: ^1.0
- yiisoft/yii2: ^2.0
This package is auto-updated.
Last update: 2021-09-19 05:17:22 UTC
README
简单的自定义S3文件系统扩展,具有基本功能:读取、写入、删除。
此扩展使用 Flysystem 作为核心文件系统。
安装
安装此扩展的首选方式是通过 composer。
运行以下命令之一:
$ composer require bahirul/yii2-simple-s3
或者
"bahirul/yii2-simple-s3": "^0.0.2"
将其添加到你的 composer.json
文件的 require
部分。
配置
按照以下方式配置应用的 components
:
return [ //... 'components' => [ //... 's3' => [ 'class' => 'bahirul\yii2\SimpleS3', 'endpoint' => 'YOUR_S3_URL', 'key' => 'YOUR_S3_KEY', 'secret' => 'YOUR_S3_SECRET', 'bucket' => 'YOUR_S3_BUCKET', //'region' => 'YOUR_S3_REGION', // Optional //'version' => 'YOUR_S3_VERSION', // Optional ], ], ];
使用方法
从S3读取文件
readFile()
方法将返回包含 'stream' 和 'mimetype' 键的数组。
在控制器中作为响应发送
// s3 custom init $s3 = Yii::$app->s3; // your requested file $fileRequest = 'example_file_image.jpg'; // read file on S3 $readFile = $s3->readFile($fileRequest); // init web response $response = Yii::$app->response; $response->headers->set('Content-Type', $readFile['mimetype']); $response->format = \yii\web\Response::FORMAT_RAW; $response->stream = $readFile['stream']; return $response->send();
或者在控制器中作为文件发送
// s3 custom init $s3 = Yii::$app->s3; // your requested file $fileRequest = 'example_file_image.jpg'; // read file on S3 $readFile = $s3->readFile($fileRequest); // init web response $response = Yii::$app->response; return $response->sendStreamAsFile($readFile['stream'], $fileRequest ,['mimeType' => $readFile['mimetype']]);
将文件写入S3
writeFile()
方法将返回布尔值。
在控制器中的写入(上传)用法
// your file upload instance $fileModel = UploadedFile::getInstance($model, 'attributeName'); $s3 = Yii::$app->s3; // generate random filename $filename = time() . '.jpg'; if($model->load($post) && $model->validate()){ // upload file to s3 $s3->writeFile($fileModel, $filename); }
在S3上删除文件
deleteFile()
方法将返回布尔值。
在控制器中的删除用法
$s3 = Yii::$app->s3; $fileRequest = 'example_file_image.jpg'; $s3->deleteFile($fileRequest);