Saat aplikasi kamu menangani banyak file seperti gambar atau dokumen, kamu perlu menyimpan file tersebut dalam sistem penyimpanan tertentu di luar server aplikasi kamu. Salah satu layanan penyimpanan terbaik adalah Amazon S3. Artikel ini akan menunjukkan cara membuat Bucket Amazon S3, membuat access key id dan secret, dan mengunggah file ke Amazon S3 dengan Go.
Apa itu Amazon S3
Amazon S3 atau Simple Storage Service adalah layanan penyimpanan yang disediakan oleh Amazon AWS. Kita dapat menggunakannya untuk menyimpan dan melindungi data dalam jumlah berapa pun untuk berbagai use cases, seperti data lake, website, aplikasi mobile, backup and restore, arsip, aplikasi enterprise, perangkat IoT, dan big data analytics.
Untuk menyimpan data ke S3 dengan aplikasi Go, pertama-tama kita perlu membuat bucket dan access credentials.
Jika kamu sudah memiliki bucket dan credentials, kamu dapat melompat ke bagian ini.
Membuat an S3 bucket
Untuk membuat bucket S3 kamu, pertama, buka halaman AWS console. Kemudian cari S3 di search bar. kamu akan diarahkan ke halaman dashboard S3.
Klik tombol Create Bucket
.
Masukkan Bucket name
dan pilih AWS Region
pilihan kamu. Biarkan pengaturan lain apa adanya untuk saat ini.
Kemudian klik tombol Create Bucket
di bagian bawah halaman. Bucket akan dibuat.
Buat IAM untuk mengakses bucket
Setelah bucket dibuat, kita perlu membuat access key id dan secret agar aplikasi Go kita dapat mengakses bucket. Untuk membuat kredensial, buka halaman konsol AWS, lalu cari IAM di search bar. Kemudian klik IAM untuk membuka halaman dasbor IAM.
Di halaman dasbor IAM, klik Users
di bilah sisi kiri. Kemudian klik Add Users
.
Masukkan User name dan centang kotak Access key - Programmatic access
. Kemudian klik tombol Next
.
Kita perlu attach S3 access policy ke user.
- Klik
Attach existing policies directly
. - Cari S3 di filter.
- Kemudian centang
AmazonS3FullAccess
dan klik tombolNext
.
Kamu dapat menambahkan tag jika kamu mau. Ini opsional.
Tinjau pembuatan pengguna untuk memastikan parameternya benar. Kemudian klik Create User
.
User berhasil dibuat.
Simpan Access Key ID
dan Secret access key
. Ini diperlukan untuk mengakses bucket dari aplikasi Go.
Cara upload file ke S3 dengan Go
Setelah kita memiliki bucket dan akses key, aplikasi Go kita dapat mengunggah file ke S3. AWS menyediakan Go SDK official untuk mengelola S3 (https://github.com/aws/aws-sdk-go/).
Untuk meng-upload file ke S3 kita perlu membuat S3 upoader dan memanggil method Upload dari uploader.
Gunakan contoh kode berikut untuk membuat uploader.
|
|
Pada baris 11, kita membuat AWS config dengan region bucket kita dan mengakses access key ID dan secret dari IAM. Konfigurasi ini diperlukan untuk membuat session untuk uploader. Pastikan untuk mengimport semua library yang diperlukan.
Setelah uploader dibuat, kita dapat memanggil method
UploadWithContext
dari uploader untuk meng-upload file ke S3. Mari kita lihat contoh kode di bawah ini.
|
|
UploadInput
yang berisi nama bucket dan atribut file. Context dapat digunakan untuk membatasi waktu upload dan pembatalan.Kesimpulan
Untuk mengunggah file ke Amazon S3, kita dapat menggunakan Go SDK official yang disediakan oleh AWS. Kita memerlukan bucket dan access key ID dan secret key untuk mengupload dari aplikasi Go. Setelah kita memilikinya, kode Go untuk mengunggah file menjadi sederhana.
The complete code
The complete code is here (click to expand)
|
|