2017 © Pedro PelĆ”ez
 

library jv-s3-upload

A generic module AWS Amazon S3 Upload for ZF2.

image

jaimevalasek/jv-s3-upload

A generic module AWS Amazon S3 Upload for ZF2.

  • Friday, September 27, 2013
  • by jaimevalasek
  • Repository
  • 1 Watchers
  • 1 Stars
  • 1,034 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 2 Forks
  • 0 Open issues
  • 1 Versions
  • 0 % Grown

The README.md

JVS3Upload - JV S3 Upload

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)

Instalação

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)

With composer

  1. Add this project and JVS3Upload in your composer.json:
"require": {
    "jaimevalasek/jv-s3-upload": "dev-master"
}
  1. Now tell composer to download JVS3Upload by running the command:

php $ php composer.phar update, (*7)

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., (*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
}

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
}

The Versions

27/09 2013

dev-master

9999999-dev https://github.com/jaimevalasek/JVS3Upload

A generic module AWS Amazon S3 Upload for ZF2.

  Sources   Download

BSD-3-Clause

The Requires

 

zf2 jaimevalasek s3 upload aws amazon s3