skylineos / yii2-s3manager
AWS S3桶中文件管理的yii2扩展
Requires
- php: >=7.4
- 2amigos/yii2-tinymce-widget: ~1.1
- aws/aws-sdk-php: ^3.64
- league/flysystem: ^2.0
- league/flysystem-aws-s3-v3: ^2.0
- thiagotalma/yii2-jstree: ~1.0.0
- tinymce/tinymce: 5.10.3
- yiisoft/yii2: ~2.0.0
- yiisoft/yii2-imagine: *
README
一个用于管理AWS S3桶中文件的Yii 2扩展
此扩展为Yii框架2.0提供了管理AWS S3桶中文件的非常可定制的解决方案。它可以独立使用,作为表单字段的回调,或与TinyMCE集成。
有关许可证信息,请参阅LICENSE文件。
安装
安装此扩展的首选方式是通过composer。
运行以下命令
php composer.phar require --prefer-dist skylineos/yii2-s3manager
或向您的composer.json文件的require部分添加以下内容
"skylineos/yii2-s3manager": "~3.0.0"
。
配置
要使用此扩展,您应将模块添加到您的Web配置中。模块本身的配置可以在这里或即时完成。
return [ //.... 'modules' => [ 's3manager' => [ 'class' => 'skylineos\yii\s3manager\Module', // All settings can be configured on the fly regardless of usage type (fileinput, standalone manager, tinymce plugin) 'configuration' => [ 'bucket' => 'your-bucket-name', // can be overriden with \Yii::$app->params['s3bucket'] 'version' => 'latest', 'region' => 'your-bucket-region', // can be overriden with \Yii::$app->params['s3region'] 'scheme' => 'http', ], ], ] ];
请确保检查widgets文件夹以获取暴露的参数。
使用
独立
只需导航到/s3manager
带文件输入(活动表单)
在您的表单中添加以下内容(例如,views/post/form.php)
use skylineos\yii\s3manager\widgets\{FileInput, MediaManagerModal};
在您想要表单字段的位置
<label>My Field</label> <?= FileInput::widget(['model' => $model, 'attribute' => 'myField']) ?>
然后,在页面底部(在您的<?php ActiveForm::end(); ?>
之后)<?= MediaManagerModal::widget(['s3region' => 'us-east1', 's3bucket' => 'my-bucket-name']) ?>
与TinyMCE一起使用
在您的form.php中
use skylineos\yii\s3manager\widgets\{TinyMce, MediaManagerModal};
在您想要TinyMCE的位置(客户端选项主要取决于您)
<?= $form->field($model, 'content')->widget(TinyMce::className(), [ 'options' => ['rows' => 15], 'clientOptions' => [ 'plugins' => [ "advlist autolink lists link charmap print preview anchor", "searchreplace visualblocks code fullscreen", "insertdatetime media table contextmenu paste image" ], 'menubar' => 'edit insert view format table tools help', 'toolbar' => "undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image" ] ]);?>
然后,在页面底部(在您的<?php ActiveForm::end(); ?>
之后)<?= MediaManagerModal::widget(['s3region' => 'us-east1', 's3bucket' => 'my-bucket-name']) ?>