Backup de arquivos na Cloud com AWS Amazon S3 e PHP

Publicado por Edilson Osorio Junior (última atualização em 21/01/2013)

[ Hits: 4.077 ]

Homepage: www.eddieoz.com

Download s3-send.php




Boas práticas de Segurança da Informação ditam que não se deve manter os backups somente na mesma máquina onde os dados principais estão. Para ajudar a resolver este ponto específico - manter cópias dos backups em ambiente externo à empresa - vamos exemplificar como utilizar a Amazon S3 como storage para seus dados.

  



Esconder código-fonte

#!/usr/bin/php
<?php
/*
 * Script:      s3-send.php
 * Author:      Edilson Osorio Junior
 * Contact:     ml: osorio.edilson at eddieoz dot com | twttr: eddieoz
 * Date:        2013-01-04
 * Description: This script backups a file to some amazonS3 bucket
 * Requisites:  - An AWS Amazon account
 *              - S3 bucket
 *              - Functional AWS SDK for PHP installed
 * Usage:       s3-send.php --bucket= --file=<fullpath_filename>
 *
 * More information on http://www.eddieoz.com/us/articles/cloud-computing/43-backup-de-arquivos-na-aws-amazon-s3
 */
   error_reporting(-1);
        header("Content-type: text/plain; charset=utf-8");
        # SDK AWS for PHP
        require_once '/installed/binaries/AWSSDKforPHP/sdk.class.php';
        # Get and test parameters
        $shortopts  = "";
        $longopts  = array(
            "bucket:",
            "file:",
        );
        $param = getopt($shortopts,$longopts);
        if ( count($param) < 2 ){
                print("Params: --bucket= --file=\n");
                exit(1);
        }
        $fullpath_filename = $param['file'];
        $bucket = $param['bucket'];
        # Initialize AmazonS3
        $s3 = new AmazonS3();
        # Get just the filename, without path
        $filename = explode(DIRECTORY_SEPARATOR, $fullpath_filename);
        $filename = array_pop($filename);
        # Prepare to send the file
        $s3->batch()->create_object($bucket, $filename, array('fileUpload' => $fullpath_filename));
        # send the file and get response, thats an array
        $file_upload_response = $s3->batch()->send();
        # Consists the return
        if ($file_upload_response->areOK())
        {
                # Show the full URL to access the file.
                echo $s3->get_object_url($bucket, $filename, '5 minutes') . PHP_EOL . PHP_EOL;
        }
        else
        {
                # On error, show the xml
                print_r( $file_upload_response );
        }
?>

Scripts recomendados

Classe Cool Button

ThumbNails

PHP Download

Receber atualização de encomendas do correios em seu e-mail

Calendário com Tabela


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts