jaimevalasek / jv-s3-upload
A generic module AWS Amazon S3 Upload for ZF2.
Installs: 1 069
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 1
Forks: 2
Open Issues: 0
Requires
- php: >=5.3.3
- zendframework/zendframework: 2.*
This package is not auto-updated.
Last update: 2025-05-06 08:30:47 UTC
README
Create By: Jaime Marcelo Valasek
Modulo para fazer upload para o seu bucket na Amazon S3.
Esse modulo tem o seu objetivo de uso somente para o upload de arquivos no AWS S3.
Futuros video aulas poderam ser desenvolvidas e postadas no site http://www.zf2.com.br/tutoriais ou no canal do Youtube http://www.youtube.com/zf2tutoriais
Instalação
Faça o download deste modulo para dentro de sua pasta vendor.
Após feito feito os passos acima, abra o arquivo config/application.config.php. E adicione o modulo com o nome JVS3Upload.
With composer
- Add this project and JVS3Upload in your composer.json:
"require": { "jaimevalasek/jv-s3-upload": "dev-master" }
- Now tell composer to download JVS3Upload by running the command:
php $ php composer.phar update
Enabling it in your application.config.php
.
<?php return array( 'modules' => array( // ... 'JVS3Upload', ), // ... );
Configurando as credenciais
- Crie um arquivo dentro da pasta global config/autoload/aws.local.php e adicione o código abaixo
<?php return array( 'Aws' => array( 'key' => 'KEY', 'secret' => 'SECRET_KEY' ) );
Fazendo o upload do arquivo
Neste exemplo usamos upload de imagem, mas pode facilmente ser qualquer tipo de arquivo.
// pegando a imagem para fazer upload $fileInfo = $file->getFileInfo(); // nome do arquivo exemplo usando o filtro jvbase_filter_token do JVBase $nomeDoArquivo = $this->getServiceLocator()->get('jvbase_filter_token')->microtimeToken() . "_" . $fileInfo['thumb_produto']['name']; // Setando o destino do arquivo dentro do bucket $nameDestination = "contents/upload/imagem/{$nomeDoArquivo}"; // setando o nome do bucket $bucket = 'nomedobucket'; // Pegando as configurações do Service Locator $config = $this->getServiceLocator()->get('config'); // Enviando a imagem para o s3 $s3 = new S3($config["Aws"]["key"], $config["Aws"]["secret"]); $s3->putBucket($bucket, S3::ACL_PUBLIC_READ); if($s3->putObjectFile($fileInfo['imagem']['tmp_name'], $bucket , $nameDestination, S3::ACL_PUBLIC_READ) ) { // Se chegar aqui é porque o upload foi um sucesso } else { // Se chegar aqui é porque ocorreu um erro ao fazer o upload }
Fazendo o upload de uma imagem com thumb
// pegando a imagem para fazer upload $fileInfo = $file->getFileInfo(); // nome do arquivo exemplo usando o filtro jvbase_filter_token do JVBase $nomeDoArquivo = $this->getServiceLocator()->get('jvbase_filter_token')->microtimeToken() . "_" . $fileInfo['thumb_produto']['name']; // Setando o destino do arquivo dentro do bucket $nameDestination = "contents/upload/imagem/{$nomeDoArquivo}"; $nameDestinationThumb = "contents/upload/imagem/thumb/{$nomeDoArquivo}"; // setando o nome do bucket $bucket = 'nomedobucket'; // Pegando as configurações do Service Locator $config = $this->getServiceLocator()->get('config'); /* * gerando a miniatura e enviando para o S3 */ $s3Thumb = new S3Thumb($config, $bucket); $s3Thumb->putThumb($fileInfo['imagem'], $nameDestinationThumb, 'public-read'); // Enviando a imagem para o s3 $s3 = new S3($config["Aws"]["key"], $config["Aws"]["secret"]); $s3->putBucket($bucket, S3::ACL_PUBLIC_READ); if($s3->putObjectFile($fileInfo['imagem']['tmp_name'], $bucket , $nameDestination, S3::ACL_PUBLIC_READ) ) { // Se chegar aqui é porque o upload foi um sucesso } else { // Se chegar aqui é porque ocorreu um erro ao fazer o upload }
Deletando um arquivo no AWS S3
// pegando a imagem para fazer upload $fileInfo = $file->getFileInfo(); // nome do arquivo exemplo usando o filtro jvbase_filter_token do JVBase $nomeDoArquivo = $this->params('arquivo'); // Setando o destino do arquivo dentro do bucket $deleteDestination = "contents/upload/imagem/{$nomeDoArquivo}"; // setando o nome do bucket $bucket = 'nomedobucket'; // Pegando as configurações do Service Locator $config = $this->getServiceLocator()->get('config'); // Instanciando $s3 = new S3($config["Aws"]["key"], $config["Aws"]["secret"]); $s3->putBucket($bucket, S3::ACL_PUBLIC_READ); if($s3->deleteObject($bucket, $deleteDestination)) { // Se chegar aqui é porque o arquivo foi excluido } else { // Se chegar aqui é porque o arquivo não foi excluido }