Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Amazon S3
Code

Pemrograman dengan Yii2: Menggunakan Amazon S3

by
Difficulty:IntermediateLength:MediumLanguages:
This post is part of a series called How to Program With Yii2.
How to Program With Yii2: Google Authentication
Programming With Yii2: Routing and URL Creation

Indonesian (Bahasa Indonesia) translation by Yanti Baddolo (you can also view the original English article)

Final product image
What You'll Be Creating

Jika Anda bertanya, “Apa itu Yii?” cek tutorial saya sebelumnya, Pengenalan Framework Yii, yang mengulas keuntungan dari Yii termasuk gambaran tentang apa yang baru di Yii 2.0, yang dirilis pada bulan Oktober tahun 2014.

Dalam seri Pemrograman Dengan Yii2  ini, saya membimbing pembaca untuk menggunakan Framework Yii2 untuk PHP.  Dalam tutorial hari ini, saya akan memandu Anda melalui dasar-dasar menjelajahi, mengunggah dan mendownload file ke dan dari layanan penyimpanan S3 berbasis cloud dari Amazon.  Intinya, saya telah membuat model penyimpanan sederhana dan controller sebagai contoh yang dapat Anda perluas sesuai untuk kebutuhan Anda.

Sekadar mengingatkan, saya juga ikut terlibat dalam thread komentar di bawah ini.  Saya sangat tertarik jika Anda memiliki pendekatan yang berbeda, gagasan tambahan, atau ingin menyarankan topik untuk tutorial masa depan.  Jika ada pertanyaan atau saran topik, silahkan posting di bawah ini.  Anda juga bisa menghubungi saya di Twitter @reifman secara langsung.

Apa itu Amazon S3?

Amazon S3 menyediakan penyimpanan berbasis cloud yang mudah digunakan untuk objek dan file.  Amazon menawarkan 99,99% ketersediaan dan 99,999999999% daya tahan objek.

Ini menawarkan berbagai fitur untuk penggunaan sederhana atau yang lebih canggih.  Ini biasa digunakan sebagai komponen penyimpanan untuk layanan CDN Amazon CloudFront, tapi ini berbeda dan dapat digunakan secara independen satu sama lain.

Anda juga dapat menggunakan S3 untuk memigrasikan file dari waktu ke waktu ke arsip di Amazon Glacier, untuk penghematan biaya tambahan.

Seperti kebanyakan AWS, Anda mengoperasikan S3 via API, dan hari ini, saya akan memandu Anda untuk menjelajahi, mengunggah dan mendownload file dari S3 dengan Yii.

Mari Memulai

Untuk menjalankan kode demonstrasi, Anda memerlukan akun Amazon AWS dan kunci akses Anda sendiri.  Anda dapat menjelajahi tree S3 Anda dari konsol AWS yang ditunjukkan di bawah ini:

Yii AWS S3 - AWS Console Menu

S3 terdiri dari bucket yang menyimpan banyak direktori dan file di dalamnya.  Sejak dulu saya menggunakan AWS sebagai CDN, tree WordPress saya tetap ada di bucket lama saya.  Anda juga dapat menelusuri bucket Anda:

Yii AWS S3 - Buckets

Semakin saya menjelajahi tree objek saya, ini lah tampilan yang lebih dalam dari konten bucket saya:

Yii AWS S3 - Objects Folders and Files

Pemrograman dengan S3

Sekali lagi, saya akan membangun tree hello dari GitHub untuk kode demonstrasi kita (lihat link di halaman ini.) Ini berasal dari dasar Yii2.

Mendapatkan Kunci Akses Anda

Anda memerlukan kunci akses untuk API AWS S3 jika Anda belum memilikinya.  Jika tidak, Anda bisa mendapatkannya dengan pergi ke Kredensial Keamanan dan membuat kunci baru:

Yii AWS S3 - Security Credentials and Access Keys

Untuk demonstrasi kode kita, Anda harus menempatkannya di file hello.ini Anda dengan kunci dan kode keamanan lainnya:

Memasang Ekstensi Yii untuk AWS

Untuk tutorial ini, kita akan menggunakan ekstensi AWS dari Federico Motta untuk Yii2.  Dia benar-benar programmer Yii termuda yang kodenya saya telah gunakan untuk tutorial Envato Tuts +:

Yii AWS S3 - AWS SDK Extension for Yii2 on Github

Bukankah mengherankan betapa cepatnya anak-anak belajar pemrograman akhir-akhir ini?

Inilah proses instalasinya menggunakan composer:

Setelah itu, saya juga menginstal dua library yang disarankannya, namun tidak menginstal semua dari saran untuk versi tingkat lanjut untuk mesin pengembangan lokal saya:

Saya juga mendaftarkan komponen awssdk dalam halo/config/web.php:

Menjelajahi Direktori S3 Saya

Untuk demonstrasi hari ini, saya membuat sebuah file hello/controllers/StorageController.php dengan method aksi untuk menjalankan setiap contoh, seperti http://localhost:8888/hello/storage/browse untuk menjelajahi direktori.

Metode ini pada gilirannya memanggil model Storage.php yang saya buat dengan metode mereka sendiri.

Inilah kode kontrolernya:

Ini melakukan permintaan agar model Storage mengakses awan di "S3ky" dan menjelajahi direktori manual.

Setiap kali model Storage.php di instantiasikan, ia memuat ekstensi AWS SDK dan membuat instance S3:

Dalam contoh browse saya, saya hanya menampilkan direktori dan file, namun Anda bebas untuk mengkustomisasi kode ini sesuai kebutuhan:

Berikut adalah hasilnya ketika saya membuka http://localhost:8888/hello/storage/browse

Yii AWS S3 - Browse S3 Objects a listing of directories and files

Mengunggah File

Untuk mengunggah file, Anda perlu menentukan lokasi local dan kunci jarak jauh tujuan file.  Beginilah kode kontroler untuk mengunggah:

Dan inilah metode model Storage:

Buka http://localhost:8888/hello/storage/upload akan menampilkan URL kembali yang dimana saya dapat melihat file yang diunggah, karena saya telah menentukan public-read di kode saya di atas:

Yii AWS S3 - Results of Upload method - a URL to the new file

In turn, browsing to the S3 address above shows the contents of the uploaded file:

Mengunduh File

Inilah kode kontroler untuk mengunduh sebuah file:

Karena browser merespons content-type, sebaiknya tampilkan gambar yang sesuai, seperti yang saya request di sini.

Catatan: Saya mendownload gambar sampul dari pengalaman saya menikahi perusahaan bernama Corporate Person kepada wanita (ya, itu benar-benar terjadi).  Pernikahan itu tidak berjalan lama.

Inilah kode dari model Storage untuk mengunduh:

Inilah yang Anda lihat saat file tersebut di buka dalam browser - yaitu mempelai wanita yang sedang merayakannya dengan melambaikan lisensi pernikahan yang sebenarnya kepada Corporate Person (saya tersenyum di latar belakang, misi terlaksana).

Yii AWS S3 - Marriage Scene with Woman and Marriage License

Tentu, Anda bisa dengan mudah menyimpan hasilnya di server Anda dalam sebuah file.  Terserah Anda.  Saya mendorong Anda untuk mencoba bermain-main dengan kode dan menyesuaikannya sesuai keinginan Anda.

Apa selanjutnya?

Saya harap ini membantu Anda dengan dasar-dasar penggunaan AWS S3 dari aplikasi Yii Anda.

Jika Anda menyukai konsep objek berbasis cloud dan penyimpanan file namun ingin mencari provider lain, lihat Alternatif dari Amazon AWS.  Saya telah sedikit demi sedikit beralih dari AWS karena sejumlah alasan yang disebutkan dalam artikel ini. Salah satu tugas saya selanjutnya adalah memigrasikan objek S3 saya yang masih sebagian digunakan ke server saya sendiri, yang bisa saya mirror dengan KeyCDN.

Tonton tutorial yang akan datang di seri Pemrograman Dengan Yii2 untuk terus mendalami berbagai aspek dari framework ini.  Anda mungkin juga ingin melihat seri Membangun Startup Anda Dengan PHP yang menggunakan template Yii2 tingkat lanjut saat kita membangun aplikasi dunia nyata.  Aplikasi Meeting Planner di seri startup sekarang siap digunakan, dan semuanya dibangun menggunakan Yii.

Jika Anda ingin tahu kapan tutorial Yii2 berikutnya tiba, ikuti saya @reifman di Twitter atau periksa halaman saya.

Tautan Terkait

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.