Armazenamento de Arquivos com Laravel S3

Laravel
Tempo de leitura: 3 minutos

Armazenamento de Arquivos com Laravel S3: O Laravel oferece uma interface fluida e intuitiva para gerenciar o armazenamento de arquivos, seja em um sistema de arquivos local ou em serviços de armazenamento em nuvem como o Amazon S3. Essa flexibilidade é crucial para aplicações que exigem o upload, armazenamento e recuperação de arquivos, como plataformas de e-commerce, sistemas de gerenciamento de conteúdo (CMS) e aplicativos de compartilhamento de arquivos.

Neste artigo, vamos explorar em detalhes como configurar a dobradinha Laravel S3 para utilizar o armazenamento de arquivos no Laravel, com foco no Amazon S3, um dos serviços de armazenamento em nuvem mais populares. Abordaremos tópicos como configuração, obtenção de instâncias de disco, recuperação, armazenamento e exclusão de arquivos, sempre acompanhados de exemplos práticos de código.

Configuração

A configuração do armazenamento de arquivos no Laravel é realizada através do arquivo config/filesystems.php. Neste arquivo, você define os diferentes “discos” de armazenamento disponíveis para sua aplicação.

PHP

// config/filesystems.php

'disks' => [
    'local' => [
        'driver' => 'local',
        'root' => storage_path('app'),
    ],

    's3' => [
        'driver' => 's3',
        'key' => env('AWS_ACCESS_KEY_ID'),
        'secret' => env('AWS_SECRET_ACCESS_KEY'),
        'region' => env('AWS_DEFAULT_REGION'),
        'bucket' => env('AWS_BUCKET'),
    ],
],

Observações:

  • ‘local’: Define o disco local para armazenar arquivos no sistema de arquivos do servidor.
  • ‘s3’: Define o disco S3 para armazenar arquivos no Amazon S3. As credenciais de acesso e a região devem ser configuradas nas variáveis de ambiente.

Obtendo Instâncias de Disco

Para obter uma instância de um disco específico, utilize a Facade Storage:

PHP

use Illuminate\Support\Facades\Storage;

// Obtendo uma instância do disco local
$disk = Storage::disk('local');

// Obtendo uma instância do disco S3
$disk = Storage::disk('s3');

Armazenando Arquivos

Para armazenar um arquivo, utilize os métodos put, putFile ou store da Facade Storage.

PHP

// Armazenando um arquivo localmente
Storage::disk('local')->put('arquivo.txt', 'Conteúdo do arquivo');

// Armazenando um arquivo enviado por um formulário no S3
$path = $request->file('arquivo')->store('uploads', 's3');

Recuperando Arquivos

Para recuperar um arquivo, utilize o método get da Facade Storage.

PHP

// Obtendo o conteúdo de um arquivo
$contents = Storage::disk('s3')->get('pasta/arquivo.txt');

// Obtendo um URL público para um arquivo no S3
$url = Storage::disk('s3')->url('pasta/arquivo.jpg');

Deletando Arquivos

Para deletar um arquivo, utilize o método delete da Facade Storage.

PHP

// Deletando um arquivo
Storage::disk('s3')->delete('pasta/arquivo.txt');

Conclusão

Armazenamento de Arquivos com Laravel S3: O Laravel oferece uma forma simples e eficiente de gerenciar o armazenamento de arquivos em suas aplicações. Com a flexibilidade de configurar diferentes discos, você pode escolher a melhor opção para suas necessidades, seja armazenando arquivos localmente ou em um serviço de armazenamento em nuvem como o Amazon S3.

Ao dominar os conceitos de armazenamento de arquivos no Laravel, você estará apto a construir aplicações mais robustas e escaláveis, capazes de lidar com grandes volumes de arquivos e oferecer uma experiência de usuário mais satisfatória.

Mas antes de dominar o Laravel, se for o seu caso, toda jornada tem um início. Vamos entender quais são os conhecimentos básicos necessários para aproveitar ao máximo este poderoso framework. Para iniciar seus estudos no Laravel, você precisará dominar as seguintes tecnologias:

HTML
HTML
CSS
CSS
Javascript
JavaScript
SQL
SQL
Capa Curso PHP
PHP

E se você gosta do nosso conteúdo, não deixe de contribuir adquirindo os serviços e produtos dos nossos apoiadores e empresas que somos associados:

Hospedagem Hostinger
Ofertas Amazon
Amazon Prime
Author: Thiago Rossi