dev-master
9999999-dev https://github.com/jaimevalasek/JVS3UploadA generic module AWS Amazon S3 Upload for ZF2.
BSD-3-Clause
The Requires
- php >=5.3.3
- zendframework/zendframework 2.*
zf2 jaimevalasek s3 upload aws amazon s3
A generic module AWS Amazon S3 Upload for ZF2.
Create By: Jaime Marcelo Valasek, (*1)
Modulo para fazer upload para o seu bucket na Amazon S3., (*2)
Esse modulo tem o seu objetivo de uso somente para o upload de arquivos no AWS S3., (*3)
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, (*4)
FaƧa o download deste modulo para dentro de sua pasta vendor., (*5)
Após feito feito os passos acima, abra o arquivo config/application.config.php. E adicione o modulo com o nome JVS3Upload., (*6)
"require": { "jaimevalasek/jv-s3-upload": "dev-master" }
php $ php composer.phar update
, (*7)
application.config.php
.<?php return array( 'modules' => array( // ... 'JVS3Upload', ), // ... );
<?php return array( 'Aws' => array( 'key' => 'KEY', 'secret' => 'SECRET_KEY' ) );
Neste exemplo usamos upload de imagem, mas pode facilmente ser qualquer tipo de arquivo., (*8)
// 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 }
// 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 }
// 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 }
A generic module AWS Amazon S3 Upload for ZF2.
BSD-3-Clause
zf2 jaimevalasek s3 upload aws amazon s3