Fazer upload de arquivos para o Amazon S3 é uma forma excelente de carrega-los rapidamente através do CDN deles, e permite que você foque sua energia no seu código, ao invés do seu sistema de arquivos.

Obs: Você precisará instalar via composer o package flysystem para utilizar o Amazon S3, ele NÃO faz parte da instalação do Laravel.

A primeira coisa que precisamos fazer após instalar o package é avisar nosso controller (ou seu Repository, se estiver utilizando esse Design Pattern), para utilizar o FileSystem contract e é claro,a classe Request.

Próximo passo, vamos criar uma action no controller que vai lidar com o upload o arquivo.

Como pode perceber, a classe Request possui um método especifico para lidar com arquivos de upload. Nós então alocamos este arquivo numa variável, no caso $image.

Após isso precisamos definir um nome para o arquivo. Você pode manter o nome original, mas na maioria dos casos você vai querer ajusta-lo para manter a coisa “consistente”. Vamos altera-lo para um timestamp, e adicionar a extensão do arquivo a ele.

Agora nós só precisamos criar uma nova instância do FileSystem, definir o path relativo ao bucket, e fazer o upload do arquivo. Usaremos o método $s->put(), e passar três parâmetros.

  1. Path do arquivo relativo ao bucket do S3
  2. O conteúdo do arquivo
  3. Permissões do arquivo

Apenas explicando o código acima:

  1. Instanciamos a classe Storage utilizando o adaptador do Amazon S3.
  2. Definimos um caminho relativo para o arquivo.
  3. Fazemos o upload. Obs: o terceiro argumento, ‘public’, serve para informarmos ao AWS S3 que a permissão do arquivo será de acesso publico.

E está feito. Lembre-se de manter sua API KEY e Secret KEY da AWS no seu arquivo .env. Você com certeza não os quer sendo versionados, então os carregue como variáveis do ambiente, dessa forma no arquivo filesystems.php:

E obviamente você os definirá no seu arquivo .env.

 

 

Fabio Ferreira on EmailFabio Ferreira on InstagramFabio Ferreira on Twitter
Fabio Ferreira

Desenvolvedor Javascript e PHP, é editor do blog Café na Veia e também atua como desenvolvedor web freelancer na cidade de São Paulo.


Author: Fabio Ferreira

Desenvolvedor Javascript e PHP, é editor do blog Café na Veia e também atua como desenvolvedor web freelancer na cidade de São Paulo.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Instagram did not return any images.

Siga também nosso Instagram!