neoacevedo/yii2-storage

该包已被废弃,不再维护。没有建议的替代包。

为Yii2提供存储管理。

维护者

详细信息

gitlab.com/neoacevedo/yii2-storage

安装次数: 2,455

依赖者: 1

建议者: 0

安全性: 0

星星: 0

分支: 0

类型:yii2-extension

此包尚未发布任何版本,且信息有限。


README

PayPal - The safer, easier way to pay online! ePayco

Latest Stable Version Total Downloads Latest Unstable Version License Monthly Downloads Daily Downloads

为Yii2提供存储管理。

项目因缺乏支持而归档。

#storage #module #upload #file #extension #aws #azure #google

安装

安装此扩展的首选方式是通过 composer

然后执行

php composer.phar require --prefer-dist neoacevedo/yii2-storage

或将其添加到您的 composer.json 文件的 require 部分。

"neoacevedo/yii2-storage": "*"

使用

安装扩展后,请在您的 Yii 应用配置文件中配置存储服务的凭证。

<?php

'components' => [
	/**
	 * Amazon S3
	 */ 
	'storageAWS' => [
		'class' => 'neoacevedo\yii2\storage\S3Storage',
	    'config' => [
	        'key' => 'YOUR_IAM_ACCESS_KEY',
	        'secret' => 'YOUR_IAM__SECRET_ACCESS_KEY',
	        'bucket' => 'your-bucket',
	        'region' => 'your-region',
	        'extensions' => 'pdf, jpg, jpeg, gif, png, bmp'
	    ],
	    'prefix' => '', // ruta al directorio de imágenes. Ej: images/ (Opcional)
	]


	/**
	 * Azure Storage Blob
	 */
	'storageAzure' => [
		'class' => 'neoacevedo\yii2\storage\AzureStorage',
	    'config' => [
	        'accountName' => 'ACCOUNT_NAME',
	        'accountKey' => 'ACCOUNT_KEY',
	        'container' => 'your-container',
	        'extensions' => 'pdf, jpg, jpeg, gif, png, bmp'
	    ],
	    'prefix' => '' // ruta al directorio de imágenes. Ej: images/ (Opcional)
	]

	/**
	 * Google Storage Cloud
	 */
	'storageGoogle' => [
		'class' => 'neoacevedo\yii2\storage\GoogleCloudStorage',
	    'config' => [
	        'projectId' => 'YOUR_PROJECT_ID',
	        'bucket' => 'your-bucket'
	        'keyFile' => '', // Contenido del archivo JSON generado en la consola de Google
	        'extensions' => 'pdf, jpg, jpeg, gif, png, bmp'
	    ],
	    'prefix' => '', // ruta al directorio de imágenes. Ej: images/ (Opcional)
	]

	/**
	 * Almacenamiento local
	 */ 
	'storageLocal' => [
		'class' => 'neoacevedo\yii2\storage\LocalStorage',
	    'config' => [
	        'baseUrl' => '/web', // reemplace "/web" por "/", "@web", "/frontend/web" o "/backend/web" según sea el caso.
	        'directory' => '@webroot/web/uploads/', // reemplace @webroot por @frontend o @backend según sea el caso. La ruta debe terminar con una barra diagonal
	        'extensions' => 'pdf, jpg, jpeg, gif, png, bmp'
	    ],
	    'prefix' => '', // ruta al directorio de imágenes. La ruta debe terninar con una barra diagonal si se establece. Ej: images/ (Opcional)
]

现在您可以从应用程序中调用它

...
$fileManager = Yii::$app->storage->getFileManager();
...
/**
 * Sube el archivo de imagen.
 * @param \neoacevedo\yii2\storage\models\FileManager $fileManager
 * @return boolean
 */
public function upload($fileManager)
{
    if (null !== $fileManager->uploadedFile) {
        return Yii::$app->storage->save($fileManager);
    } else {
        return false;
    }
}

...
// obtener la URL generada
echo Yii::$app->storage->getUrl(Yii::$app->storage->prefix . $fileManager->uploadedFile->name); 

或直接在代码中调用

<?php 
use neoacevedo\yii2\storage\S3Storage;

public function upload()
{
	$storage = new S3Storage([
		'config' => [
			'key' => 'YOUR_IAM_ACCESS_KEY',
			'secret' => 'YOUR_IAM_SECRET_ACCESS_KEY',
			'bucket' => 'your-bucket',
			'region' => 'your-region',
			'extensions' => 'pdf, jpg, jpeg, gif, png, bmp'
		],
		'prefix' => '' // opcional
	]);
	
	return $storage->save($storage->getFileManager());
}

您可以在控制器中通过以下方式使用组件模型来构建您的表单

...
// Constructor de clase
	$storage = new S3Storage([
		'config' => [
			'key' => 'YOUR_IAM_ACCESS_KEY',
			'secret' => 'YOUR_IAM_SECRET_ACCESS_KEY',
			'bucket' => 'your-bucket',
			'region' => 'your-region',
			'extensions' => 'pdf, jpg, jpeg, gif, png, bmp'
		],
		'prefix' => '' // opcional
	]);
	return $this->render('create', [
                'model' => $model,
                'fileManager' => $storage->getFileManager()
    ]);	
...
// Como componente
	return $this->render('create', [
                'model' => $model,
                'fileManager' => Yii::$app->storage->getFileManager()
    ]);
...
// Usando el modelo de manera directa
	return $this->render('create', [
                'model' => $model,
                'fileManager' => new neoacevedo\yii2\storage\models\FileManager()
    ]);

在视图中

<?= $form->field($fileManager, 'uploadedFile')->fileInput() ?>