mamadali/yii2-s3-storage
一个为yii2提供将文件存储在S3存储上的包
1.0.0
2024-09-08 05:58 UTC
Requires
- php: ^8.0
- aws/aws-sdk-php: 3.316.2
- yiisoft/yii2: ^2.0
README
Yii2 S3 Storage是一个Yii2组件,提供了一种简单的方法来存储文件在Amazon S3上。
安装
安装此扩展的首选方式是通过composer。
运行以下命令之一
composer require mamadali/yii2-s3-storage
或添加
"mamadali/yii2-s3-storage": "*"
到您的composer.json
文件的require部分,并运行composer update
然后运行迁移
php yii migrate/up --migrationPath=@vendor/mamadali/yii2-s3-storage/src/migrations
基本用法
将s3组件添加到配置文件的components
部分
'components' => [ ... 's3storage' => [ 'class' => 'mamadali\S3Storage\components\S3Storage', 'key' => // your access key 'secret' => // your secret key 'endpoint' => // your endpoint 'default_bucket_name' => // your bucket name 'bucket_domain' => // Optional: your bucket domain ], ... ];
将行为添加到您的模型中
public function behaviors() { return [ ... [ 'class' => StorageUploadBehavior::class, 'attributes' => ['file'], 'scenarios' => [self::SCENARIO_UPLOAD], 'path' => 'path/model_class/{id}' ], ... ]; }
然后在表单中添加文件输入,并在控制器中保存模型
<?= $form->field($model, 'file')->fileInput() ?>
$model->save();
获取存储的用法
S3Storage::formatUsageSpace(Yii::$app->s3storage->getTotalUsage()); // return "1 MB"
S3Storage::formatUsageSpace(Yii::$app->s3storage->getUsageByModelClass(Model::class));
Yii::$app->s3storage->getUsageSeperatedByModelClass(); /** * return [ * [ * 'model_class' => 'common\models\Model', * 'size' => 1048576 // bytes * ], * ] */