En el curso de PHP con Laravel se nos enseña a subir un proyecto a produccción utilizando heroku. Sin embargo esta plataforma no nos permite usar el storage de la aplicación. Hay una manera de resolver este problema utilizando cloudinary, que básicamente nos ofrece un servicio de cloud storage para diversos lenguajes de programación incluyendo el utilizado en el curso.
La librería que nos permite utilizar este servicio en Laravel se llama: Cloudder. Básicamente se comporta como cualquier otra librería que se instala a través de composer con el comando:
composer require jrm2k6/cloudder:0.4.*
Para abrir una cuenta en Cloudinary solo debemos registrarnos en su página como cualquier servicio de autenticación (Recuerda confirmar tu correo electrónico).
En la web de cloudinary se nos otorga una API key, un API secret y un Cloud Name. Que deben ser rellenados en el archivo .env de nuestra aplicación:
CLOUDINARY_API_KEY=012345679890123CLOUDINARY_API_SECRET=foobarfoobarfoob-arfoobarfo
CLOUDINARY_CLOUD_NAME=foobarcorp
Luego en nuestro archivo config/app.php debemos agregar en el array providers:
'JD\Cloudder\CloudderServiceProvider'
y en el array aliases:
'Cloudder' => 'JD\Cloudder\Facades\Cloudder'
Luego en la terminal ejecutamos el comando:
php artisan vendor:publish --provider="JD\Cloudder\CloudderServiceProvider"
Luego de realizar lo anterior explicado tendremos la aplicación lista para usar el Cloud Storage.
Un ejemplo de como usarlo sería importar en nuestro controlador la clase ‘Cloudder’:
useCloudder;
y subir el archivo de la siguiente manera:
Cloudder::upload($nombreDelArchivo);
Recuerda que en el formulario de tu html debes tener el atributo:
enctype="multipart/form-data"
Para más información, consulta la documentación de esta excelente librería: https://github.com/jrm2k6/cloudder