Showing posts with label Amazon S3. Show all posts
Showing posts with label Amazon S3. Show all posts

Thursday, March 15, 2018

Spring boot Upload Service to AWS S3

Halo teman - teman kali ini saya akan share tentang membuat service upload file ke AWS S3 menggunakan spring boot ini. Langsung saja biar gak panjang lebar kita mulai step - stepnya

Yang pertama Anda harus siapkan Akun Aws S3 lalu yang anda butuhkan adalah:
  • Access Key
  • Secret Key
  • Bucket Name
  • End Point Url
jika belum punya akun bisa daftar disini  Next kita akan buat cara uploadnya di Spring boot, buka IDE nya dan masuk ke project lama atau project baru teman- teman bebas ya.

Selanjutnya masukan depedenci maven untuk amazon s3 seperti berikut:

Lalu di build mavenya agar depedency yang di masukan akan mendownload package jar nya , Setelah itu masukan juga AccessKey, Secret Key, Bucket Name, End Point Url nya ke dalam application.yaml 



Lalu Kita buat Class Service , AmazonS3Service.java seperti berikut:


Penjelasan

Method initializeAmazon di gunakan untuk mengakses akun aws s3 kita

Method convertMultiPartToFile digunakan untuk menconvert masukan yang dari multipart menjadi file

Method generateFileName digunakan untuk mengenerate nama file secara acak agar tidak terjadi kesamaan nama

Method uploadFileTos3bucket digunakan untuk mengupload file ke bucket yang telah di tentukan

Method uploadFile Method digunakan untuk action upload yang di gunakan untuk rest atau masukan dari Front ent

Method deleteFileFromS3Bucket digunakan untuk mendelete file yang ada di dalam bucket


Ok Selanjutnya Membuat Akses rest untuk Front End saya beri nama AmazonS3Controller.java  


Ok setelah ini selesai jalan kan project spring boot nya mvn spring-boot:run Lalu test dengan Postman

Selamat mencoba.....

Referensi :
https://medium.com/oril/uploading-files-to-aws-s3-bucket-using-spring-boot-483fcb6f8646

Friday, September 15, 2017

Minio Distributed Mode

Hello, pada kesempatan kali ini, saya ingin sharing tentang Minio. Minio adalah object storage opensource berbasis bahasa pemrograman GO yang dapat digunakan untuk menyimpan “unstructured data” seperti foto, video, document, log files dll. Minio menggunakan istilah “Bucket” yang akan menampung object yang akan disimpan. Tidak hanya dapat diakses dan di manage melalui “command line” Minio juga memiliki Web UI yang memudahkan user untuk memanage object dan bucket. Komponen utama dari minio adalah minio server dan minio client. Selain menggunakan "mc" utility, Minio juga support client menggunakan : Java, Javascript, GO, .Net dan Python dengan menggunakan SDK yang tersedia di official website.

Disini kita akan membahas Minio Distributed Mode “Pool Multiple drive (different machine) into single Object Storage Server” yang berarti terdapat beberapa minio server pada node berbeda yang akan menyediakan service dan akan meningkatkan data reliability dan avaibility. Minio menerapkan teknologi erasure code dan checksum untuk mengatasi data corruption, jadi jika kita kehilangan N/2 dari jumlah drive, data masih dapat di recover. Minio memiliki limit minimum 4 drives dan maksimum 16 drives.

Misal : Terdapat 3 server minio yang akan digunakan untuk distributed mode dan masing-masing memiliki 2 drive untuk penyimpanan.

3 x 2 = 6 drives, jika salah satu server mati, berarti hanya tersisa 4 drive dan masih > dari N/2.
Kita masih dapat menggunakan Minio untuk mode Read and Write, yang berarti data Minio safe dan dapat digunakan dengan full mode jika jumlah drive  = N/2 + 1

Jika 2 server mati, yang artinya kita hanya memiliki 2 drive yang tersisa, maka kita hanya dapat Read data dari Minio.

Oke, kita langsung saja ke How to Setup Distributed Minio, kali ini saya akan menggunakan CentOS 7 64 bit. Sebelum nya ikuti instruksi untuk setup single minio server https://docs.minio.io/docs/minio-quickstart-guide.
  1. Download package dan change permission to executable mode. (lakukan langkah berikut ini disetiap server)
  2. Untuk initial setup jalankan minio single server pada salah satu server untuk mendapatkan ACCESS KEY dan SECRET KEY yang akan di export ke server lainnya.
  3. Create drive yang akan dijadikan penyimpanan dan start minio single server
    maka akan tampil output :
  4. Nah, kita mendapatkan ACCESS KEY dan SECRET KEY yang akan diexport ke server node. Kill proses Minio tersebut denga command : kill -9 “Program PID”. 
  5. Export ACCESS KEY dan SECRET KEY key tersebut ke server node lain dengan command:
  6. Eksekusi command berikut di setiap server untuk menjalankan minio distributed mode
  7. Setelah menjalankan command tersebut disetiap server, maka minio server akan tersinkronisasi secara otomatis.
  8. Buka web browser di <IPSERVER>:9000, masukkan ACCESS KEY dan SECRET KEY yang telah didapatkan
  9. Minio sudah dapat digunakan sebagai object storage.