Apa yang bisa kami bantu?

        NEO Object Storage merupakan layanan S3 protokol yang dapat digunakan untuk menyimpan data static seperti hal nya gambar, video, music dan yang lainnya. NEO Object Storage sendiri sudah kompatibel dengan Amazon S3 dengan demikian Anda dapat memanfaatkan NEO Object Storage untuk kebutuhan S3 Protokol. NEO Object Storage dapat dikelola atau di manajemen menggunakan Amazon SDK tentunya untuk memudahkan Anda mengintegrasikan aplikasi NodeJS maupun Ruby Anda dengan layanan NEO Object Storage.


Konfigurasi Neo Object Storage pada NodeJS

Persiapan :

  • Sistem Operasi Linux Ubuntu/Debian/CentOS
  • NodeJS
  • NPM
  • Aws-Sdk


Installasi

Untuk install NodeJS anda dapat mereview KB berikut sebagai refrensi berikut.

Pastikan NodeJS dan NPM sudah terinstall agar anda dapat lanjut ke langkah selanjutnya
Gambar 1 : check service node dan npm


Post Install

Setelah installasi selesai dilakukan anda dapat membuat persiapan terlebih dahulu seperti melakukan inisialisasi nodejs dan melakukan installasi dependency yang di perlukan, untuk hal ini silakan menggunakan command berikut :

  • node init
  • npm install aws-sdk


Mengkoneksikan NEO Object Storage

Untuk menghubungkan NEO Object Storage dengan NODE SDK Anda dapat menggunakan script NODEJS berikut:

var AWS = require('aws-sdk');
 AWS.config.update({region: 'idn'});
// Create S3 service object
s3 = new AWS.S3({
    accessKeyId: "KEY-s3-ANDA",
    secretAccessKey: "SECRET-KEY-S3-ANDA",
    endpoint: "https://ENDPOINT-S3-ANDA",
});


Membuat bucket

Untuk membuat bucket pada Neo Object Storage anda dapat membuat file baru dengan nama s3_createbucket.js kemudian silakan diisikan script berikut:

// Create the parameters for calling createBucket

var bucketParams = {
  Bucket : process.argv[2]
};


// call S3 to create the bucket

s3.createBucket(bucketParams, function(err, data) {
  if (err) {
    console.log("Error", err);
  } else {
    console.log("Success", data.Location);
  }
});

Gambar 2 : Script Create Bucket

Kemudian save dan jalankan file tersebut dengan command :
node s3_createbucket.js nama-bucket-yang-ingin-dibuat

Gambar 3 : Node Bucket

Pastikan terdapat pesan success pada output code, dan selanjutnya pastikan pada https://portal.biznetgio.com jika bucket telah berhasil dibuat.

Gambar 4 : Select Bucket


Listing Bucket

Selain membuat bucket Anda juga dapat melihat semua list bucket yang ada di NEO Object Storage Anda menggunakan AWS SDK berikut script yang digunakan:

// Call S3 to list the buckets

s3.listBuckets(function(err, data) {
  if (err) {
    console.log("Error", err);
  } else {
    console.log("Success", data.Buckets);
  }
});

// snippet-end:[s3.JavaScript.buckets.listBuckets]

Contohnya sebagai berikut :

Gambar 5 : Script Listing Bucket
Hasilnya seperti berikut :

Gambar 6 : Show Node List Buckets


Unggah File (Object) ke NEO Object Storage

Untuk mengunggah file (object) ke NEO Object Storage juga dapat dilakukan menggunakan AWS SDK, Anda dapat menggunakan script berikut:

// call S3 to retrieve upload file to specified bucket

var uploadParams = {Bucket: process.argv[2], Key: '', Body: ''};

var file = process.argv[3];

// Configure the file stream and obtain the upload parameters

var fs = require('fs');
var fileStream = fs.createReadStream(file);
fileStream.on('error', function(err) {
  console.log('File Error', err);
});
uploadParams.Body = fileStream;
var path = require('path');
uploadParams.Key = path.basename(file);
 // call S3 to retrieve upload file to specified bucket
s3.upload (uploadParams, function (err, data) {
  if (err) {
    console.log("Error", err);
  } if (data) {
    console.log("Upload Success", data.Location);
  }
});

// snippet-end:[s3.JavaScript.buckets.upload]

Contohnya sebagai berikut :

Gambar 7 : Script Upload File

Untuk menggunakan script upload dapat menggunakan command seperti berikut :
# node s3_upload.js nama-bucket-anda path-file-yang-akan-di-upload

Hasilnya seperti berikut : 

Gambar 8 : proses updload file 

Pastikan file image.jpg sudah ada pada bucketgio seperti berikut :

Gambar 9 : List File di Bucket S3Browser

Kemudian coba akses link output.

Gambar 10 : View File use Link S3
Refrensi :
https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javascript/example_code/s3


Konfigurasi Neo Object Storage pada Ruby

Persiapan :

  • Sistem Operasi Linux Ubuntu/Debian/CentOS
  • Ruby
  • Aws-Sdk


Installasi

Untuk install Ruby anda dapat mereview dokumentasi resmi berikut sebagai refrensi : https://www.ruby-lang.org/en/documentation/installation/

Pastikan Ruby sudah terinstall agar anda dapat lanjut ke langkah selanjutnya

Gambar 11 : Check Ruby Version


Post Install

Setelah installasi selesai dilakukan anda dapat membuat persiapan terlebih dahulu seperti melakukan  installasi dependency yang di perlukan, untuk hal ini silakan menggunakan command berikut :

  • gem install aws-sdk-s3


Membuat bucket

Untuk membuat bucket pada Neo Object Storage anda dapat membuat file baru dengan nama s3_createbucket.rb kemudian silakan diisikan script berikut : 

// Create the parameters for calling createBucket

require 'aws-sdk-s3'
def bucket_created?(s3_client, bucket_name)
    response = s3_client.create_bucket(bucket: bucket_name)
    if response.location == '/' + bucket_name
      return true
    else
      return false
    end
  rescue StandardError => e
    puts "Error creating bucket: #{e.message}"
    return false
  end

# Full example call:

def run_me
    bucket_name = 'GANTI-DENGAN-NAMA-BUCNET-YANG-AKAN-DIBUAT'
    region = 'idn'
    s3_client = Aws::S3::Client.new(
        region: region,
        access_key_id: "GANTI-DENGAN-KEY-ID-ANDA",
        secret_access_key: " GANTI-DENGAN-SECRET-KEY-ANDA ",
        endpoint: "https://nos.jkt-1.neo.id",
    )
    if bucket_created?(s3_client, bucket_name)
      puts "Bucket '#{bucket_name}' not created. Program will stop."
      exit 1
    else
      puts "Bucket '#{bucket_name}' created."
    end  
  end


run_me if $PROGRAM_NAME == __FILE__

Pada bagian bucket_name silakan diganti dengan nama bucket yang ingin dibuat dan sesuaikan juga access_key_id, secret_access_key dan endpoint sesuai dengan informasi dari portal. Contohnya sebagai berikut :

Gambar 12 : Script Create Bucket Ruby

Kemudian jalankan dengan command # ruby s3_createbucket.rb

Gambar 13 : Command Create Bucket Ruby

Jika sudah dijalankan silakan di cek pada portal neo untuk memastikan bucket sudah benar-benar berhasil terbuat.

Gambar 14 : Select Bucket Ruby

Listing Bucket

Selain membuat bucket, Anda juga dapat melihat semua list bucket yang ada di NEO Object Storage Anda menggunakan AWS SDK berikut script yang digunakan:

require 'aws-sdk-s3'
def list_buckets(s3_client)
  response = s3_client.list_buckets
  if response.buckets.count.zero?
    puts 'No buckets.'
  else
    response.buckets.each do |bucket|
      puts bucket.name
    end
  end
rescue StandardError => e
  puts "Error listing buckets: #{e.message}"
end

# Full example call:
def run_me
region = 'idn'
  s3_client = Aws::S3::Client.new(
    region: region,
    access_key_id: "GANTI-DENGAN-KEY-ID-ANDA", 
    secret_access_key: " GANTI-DENGAN-SECRET-KEY-ANDA ", 
    endpoint: "https://nos.jkt-1.neo.id",
  )
  puts 'Available buckets:'
  list_buckets(s3_client)
end

run_me if $PROGRAM_NAME == __FILE__

Berikut contohnya :

Gambar 15 : Script List Bucket

Berikut hasilnya :

Gambar 16 : Command List Buckets

Unggah File (Object) ke NEO Object Storage

Untuk mengunggah file (object) ke NEO Object Storage juga dapat dilakukan menggunakan AWS SDK, Anda dapat menggunakan script berikut:

require 'aws-sdk-s3'

def object_uploaded?(s3_client, bucket_name, object_key)
    name = File.basename(object_key)
    obj = s3_client.bucket(bucket_name).object(name)
    s3_client.bucket(bucket_name).acl = :public_read
    obj.upload_file(name)
    obj.public_url.to_s #returns public url of file at s3 server
end 

# Full example call:
def run_me
    bucket_name = 'bucketruby'
    object_key = 'biznetgio.png'
    region = 'idn'
    s3_client = Aws::S3::Resource.new(
        region: region,
        access_key_id: "GANTI-DENGAN-KEY-ID-ANDA", 
        secret_access_key: " GANTI-DENGAN-SECRET-KEY-ANDA "
        endpoint: "https://nos.jkt-1.neo.id",
    )

# s3_file = s3_client.buckets[bucket_name].objects[key].write(:file => object_key)

    if object_uploaded?(s3_client, bucket_name, object_key)
      puts "Object '#{object_key}' uploaded to bucket '#{bucket_name}'."
    else
      puts "Object '#{object_key}' not uploaded to bucket '#{bucket_name}'. " \
        'Program will stop.'
      exit 1
    end
  end

run_me if $PROGRAM_NAME == __FILE__

Pada bagian bucket_name isikan nama bucket tujuan, pada bagian object_key isi dengan path file yang ingin di upload. Berikut contohnya :

Gambar 17 : Script Upload File ke Bucket
Berikut hasilnya :

Gambar 18 : Command Upload Bucket
 Pastikan file biznetgio.jpg sudah ada pada bucketruby seperti berikut :

Gambar 19 : List Bucket di S3Browser

Refrensi : https://docs.aws.amazon.com/sdk-for-ruby/v3/developer-guide/s3-example-get-buckets.html


Semoga artikel ini dapat membantu Anda. Temukan bantuan lainnya melalui Knowledge Base Biznet Gio. Jika Anda masih memiliki kendala silahkan hubungi support@biznetgio.com atau (021) 5714567.