Tutorial CodeIgniter : Upload File ke Amazon S3

Tutorial CodeIgniter : Upload File ke Amazon S3

Beberapa hari ini aku sedang ngerjain project yng menggunakan service  Amazon S3. Seperti kita tau Amazon S3 (Simple Storage Service) adalah layanan penyimpanan online yang diberikan oleh Amazon kepada public yang dapat digunakan dengan memanfaatkan beberapa teknologi web service sperti REST, SOAP, Bit  Torent. Lebih lengkapnya baca di http://en.wikipedia.org/wiki/Amazon_S3 yak!! 🙂

Okey.. tuk kesempatan kali ini aku akan tulis langkah-langkah upload file ke Amazon S3 di CodeIgnter 2.0.2. Library dan referensi yang aku gunakan bisa dibuka di http://getsparks.org/packages/amazon-s3/versions/HEAD/show. Berikut step2 singkatnya:

1. Buat folder project baru (misal: amazon) , dan install codeigniter dalam folder project itu. Instalasi bisa di baca di tulisan terdahulu => http://gie-art.com/2009/07/codeigniter-1-instalasi-konfigurasi/

2. Download Libary Amazone S3 di http://github.com/phused/CodeIgniter-S3. Ada 2 file utama yaitu s3.php yang merupakan file konfigurasi. Sehingga file ini kita kopikan ke dalam application/config. File yng kedua yaitu S3.php. Ini adalah librarynya, dan ini kita kopikan ke dalam application/libraries.

3. Setting Access Key dan Secret Key pada config/s3.php

Ganti sesuai dengan Access Key  dan Secret Key yang Anda miliki pada baris program berikut:

[php]

$config[‘access_key’] = ‘Your Access Key’;
$config[‘secret_key’] = ‘Your Secret Key’;

[/php]

3. Buat Controller untuk proses upload dan View untuk form uploadnya. Berikut ini adalah controller dan view yang aku buat.

Controller amazon.php

[php]

<?php

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

class Amazon extends CI_Controller {

var $bucket = ‘mybucket’;

function __construct() {
parent::__construct();
$this->load->library(‘s3’);
}

function upload_file() {

if (!empty($_FILES) && $_FILES[‘file’][‘error’] != 4) {

$fileName = $_FILES[‘file’][‘name’];
$tmpName = $_FILES[‘file’][‘tmp_name’];

if ($this->s3->putObjectFile($tmpName, $this->bucket, $fileName, S3::ACL_PUBLIC_READ)) {
$this->session->set_flashdata(‘success’, ‘Berhasil upload file’);
redirect(‘amazon/lihat_file’);
} else {
$this->session->set_flashdata(‘error’, ‘Gagal upload file’);
redirect(‘amazon/upload_file’);
}
}

$this->load->view(‘upload_file’);
}

function lihat_file() {

$data[‘files’] = $this->s3->getBucket($this->bucket);
$this->load->view(‘lihat_file’, $data);
}

}

?>
[/php]

 

View upload_file.php

[php]

<h1>Upload file ke Amazon S3</h1><br/>
<?php echo form_open_multipart(‘amazon/upload_file’) ?>
File :<?php echo form_upload(‘file’); ?> <?php echo form_submit(‘Submit’, ‘Upload’); ?>
<?php echo form_close(); ?>

[/php]

 

View lihat_file.php

[php]

<h1>Daftar File</h1>
<table border=”1″>
<thead>

<th>File Name</th>
<th>URL</th>
</thead>
<tbody>
<?php if ($files): ?>
<?php foreach ($files as $file): ?>
<tr>
<td><?php echo $file[‘name’] ?></td>
<td><?php echo ‘http://mybucket.s3.amazonaws.com/’, $file[‘name’] ?></td>
</tr>
<?php endforeach; ?>
<?php endif; ?>

</tbody>

</table>

[/php]

 

Okey.. #sekian dulu ak share ttg Amazon S3 di CodeIgniter. Semoga bermanfaat. 🙂

About the author

gieart administrator

4 Comments so far

IdCakephpPosted on3:14 pm - Aug 17, 2011

Harus punya account di amazon dulu kah?

reggaecomPosted on9:59 am - Nov 5, 2011

nice infonya gan 🙂

Leave a Reply