✅ Notícias, temas e plug-ins da WEB e do WordPress. Aqui compartilhamos dicas e as melhores soluções para sites.

Carregar arquivos para o Amazon S3 usando AWS PHP SDK

143

Você deseja fazer upload de arquivos para o Amazon S3 programaticamente? Amazon S3 é um serviço de armazenamento em nuvem onde se pode armazenar arquivos, imagens, etc. Esses documentos podem ser públicos ou privados, dependendo da escolha do proprietário. Neste artigo, estudamos como fazer upload de arquivos para o Amazon S3 usando a biblioteca oficial AWS PHP SDK.

O Amazon S3 oferece armazenamento de objetos altamente escalonável. Por causa de sua robustez e desempenho, é um serviço de nuvem popular entre os usuários.

Por que precisa fazer upload de arquivos no Amazon S3?

Bem, há vários motivos para manter seus arquivos no Amazon S3. Por ser um serviço baseado em nuvem, você pode acessar seus arquivos de qualquer lugar. Ao usar este serviço, os usuários podem manter seus documentos confidenciais. A AWS fornece um recurso para manter seu documento público ou privado. Em segundo lugar, se você estiver executando um site da Web, manter seus arquivos na nuvem economizará muita largura de banda. Ele economiza espaço de hospedagem e reduz as cargas em seu servidor.

Dito isso, vamos dar uma olhada em como fazer upload de arquivos no Amazon S3 usando PHP.

Obtenha suas credenciais de segurança

Para começar a usar o S3, você deve ter uma conta na AWS. Depois de criar a conta AWS, certifique-se de ativar o serviço S3 seguindo seu processo de verificação.

Ao ativar o serviço S3, obtenha suas credenciais de segurança que solicitaremos ao trabalhar com as APIs.

Carregar arquivos para o Amazon S3 usando AWS PHP SDK

Código para upload de arquivos para Amazon S3

Estamos prontos com as chaves de API da AWS. Em seguida, instale uma biblioteca oficial AWS PHP SDK em seu projeto. Eu recomendo usar o Composer para instalar esta biblioteca. Abra o terminal no diretório raiz do seu projeto e execute o comando abaixo.

composer require aws/aws-sdk-php

Este comando instalará a biblioteca com suas dependências em seu projeto.

Criar um intervalo na AWS

Na AWS, precisamos criar um Bucket para armazenar nossos arquivos. O balde nada mais é do que uma unidade lógica de armazenamento na AWS. Todos os seus arquivos serão armazenados dentro do balde.

Você pode criar um bucket no painel S3 diretamente. Mas se alguém deseja criá-lo dinamicamente, consulte o código abaixo.

create-bucket.php

<?php
require 'vendor/autoload.php';
use AwsS3S3Client;
 
$bucketName = 'YOUR_BUCKET_NAME';
 
$client = new S3Client([
    'version' => 'latest',
    'region' => 'YOUR_AWS_REGION',
    'credentials' => [
        'key'    => 'ACCESS_KEY_ID',
        'secret' => 'SECRET_ACCESS_KEY'
    ]
]);
 
try {
    $result = $client->createBucket([
        'Bucket' => $bucketName, // REQUIRED
        'ACL'    => 'public-read',
    ]);
    echo "Bucket created successfully.";
} catch (AwsS3ExceptionS3Exception $e) {
    // output error message if fails
    echo $e->getMessage();
}

Certifique-se de substituir os marcadores de posição pelos valores reais. Este código cria um depósito em seu painel S3. Faremos o upload dos arquivos neste intervalo por meio da API.

No código acima, passei chave => par de valores como 'ACL' => 'public-read'. Este par define o acesso público ao seu intervalo ou arquivos. Se você deseja manter seu armazenamento privado, remova esta linha do código.

O próximo trabalho é escrever código para fazer upload de arquivos no Amazon S3. Por causa do tutorial, estou criando diferentes arquivos PHP e escrevendo código neles. No seu caso, sinta-se à vontade para implementar a lógica dependendo do fluxo do seu projeto.

Carregar arquivo para Amazon S3

Você está pronto com o balde para armazenar seus arquivos. Crie um arquivo upload-to-s3.phpe coloque o código abaixo neste arquivo.

upload-to-s3.php

<?php
require 'vendor/autoload.php';
 
use AwsS3S3Client;
 
// Instantiate an Amazon S3 client.
$s3 = new S3Client([
    'version' => 'latest',
    'region'  => 'YOUR_AWS_REGION',
    'credentials' => [
        'key'    => 'ACCESS_KEY_ID',
        'secret' => 'SECRET_ACCESS_KEY'
    ]
]);
 
 
$bucketName = 'YOUR_BUCKET_NAME';
$file_Path = __DIR__. '/my-image.png';
$key = basename($file_Path);
 
// Upload a publicly accessible file. The file size and type are determined by the SDK.
try {
    $result = $s3->putObject([
        'Bucket' => $bucketName,
        'Key'    => $key,
        'Body'   => fopen($file_Path, 'r'),
        'ACL'    => 'public-read',
    ]);
    echo "Image uploaded successfully. Image path is: ". $result->get('ObjectURL');
} catch (AwsS3ExceptionS3Exception $e) {
    echo "There was an error uploading the file.n";
    echo $e->getMessage();
}

Aqui, você deve atribuir o nome do intervalo para a $bucketNamevariável. No meu caso, estou enviando um arquivo que diz ‘my-image.png’ cujo caminho eu defini no código. Conseqüentemente, você deve ajustar o caminho de seus arquivos. Finalmente, estou imprimindo o caminho de um arquivo carregado usando o get()método na resposta recebida.

Tudo feito! Agora execute o upload-to-s3.phparquivo no navegador e seu arquivo deve ser carregado no bucket do Amazon S3.

Espero que você entenda como criar um bucket e fazer upload de arquivos para o Amazon S3. Você também pode verificar os códigos de exemplo fornecidos pela AWS no GitHub.

Artigos relacionados

Fonte de gravação: artisansweb.net

Este site usa cookies para melhorar sua experiência. Presumiremos que você está ok com isso, mas você pode cancelar, se desejar. Aceitar Consulte Mais informação