Cara Kilat Integrasi Object Storage dengan NodeJS

Halo DomaiNesians! Apakah kamu sedang membangun aplikasi NodeJS dan butuh solusi penyimpanan file yang scalable dan mudah diintegrasikan? Menggunakan Object Storage dari DomaiNesia bisa menjadi jawaban ideal. Layanan ini mendukung protokol S3 dan memungkinkan kamu untuk menyimpan, mengakses, dan mengelola file secara efisien dari aplikasi berbasis JavaScript, termasuk NodeJS.
Dalam artikel ini, kami akan membahas bagaimana cara menghubungkan Object Storage dengan NodeJS. Mulai dari proses upload file secara langsung menggunakan AWS SDK versi 2 hingga opsi yang lebih aman menggunakan URL yang ditandatangani sebelumnya. Tidak hanya itu, kamu juga akan belajar bagaimana cara menampilkan daftar file yang ada di dalam bucket dan mengunduhnya kembali ke aplikasi kamu.
Walaupun AWS SDK versi 2 sudah masuk masa maintenance, panduan ini tetap berguna karena kompatibel dengan berbagai lingkungan hosting saat ini. Selain itu, akan dijelaskan juga bagaimana langkah migrasi atau opsi penggunaan SDK versi 3. Dengan panduan ini, kamu nggak cuma dapat pengetahuan teknis, tapi juga wawasan bagaimana membangun sistem penyimpanan cloud-friendly yang efisien.

Apa itu NodeJS?
Kalau kamu ingin membuat aplikasi yang cepat, ringan, dan bisa berjalan di mana saja, NodeJS bisa jadi teman terbaikmu. Dibangun dengan JavaScript (bahasa yang biasanya dipakai di browser), NodeJS memungkinkan kamu membuat aplikasi backend yang powerful tapi tetap efisien.
Karena sifatnya event-driven dan non-blocking, NodeJS sangat cocok untuk aplikasi real-time atau layanan yang butuh kecepatan tinggi. Salah satunya: menyimpan file ke cloud seperti Object Storage. Yuk, cari tahu cara integrasi Object Storage dengan NodeJS kamu!
Panduan Integrasi Object Storage dengan NodeJS
Sebelum kamu dapat memulai, kamu perlu mempersiapkan beberapa hal:
- Akun DomaiNesia – kamu harus mendaftar di DomaiNesia dan mendapatkan akses ke Object Storage. Setelah itu, buatlah bucket untuk menyimpan file kamu.
- Bucket – adalah wadah dimana file disimpan di Object Storage. Jika Kamu belum memilikinya, kamu dapat membuatnya di dashboard DomaiNesia.
- API Key dan Secret Key – seperti halnya API Key dan Secret Key yang digunakan pada NodeJS, kamu juga memerlukan kredensial ini untuk mengakses Object Storage. Pastikan kamu sudah menyalin kredensial ini dari dashboard DomaiNesia.
- Node.js – pastikan kamu sudah menginstal Node.js versi 12 atau lebih baru. Kamu bisa mendownload Node.js di situs resmi Node.js.
- Library
aws-sdk
– untuk berinteraksi dengan Object Storage DomaiNesia, kamu akan menggunakan libraryaws-sdk
yang juga digunakan untuk Amazon S3. Install dengan perintah berikut:
1 |
npm install aws-sdk |
1. Menyiapkan Koneksi ke Object Storage DomaiNesia
Setelah menyiapkan semua prasyarat, sekarang akan menyiapkan koneksi ke Object Storage DomaiNesia menggunakan aws-sdk
pastikan script ini ada dalam setiap file yang akan digunakan dengan S3. Berikut adalah cara untuk melakukannya:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
// Mengimpor library AWS SDK untuk JavaScript, digunakan untuk berinteraksi dengan layanan AWS seperti S3 const fs = require('fs'); const AWS = require('aws-sdk'); // Konfigurasi kredensial dan endpoint const ACCESS_KEY = 'isi_dengan_access_key_kamu'; // Ganti dengan Access Key dari DomaiNesia const SECRET_KEY = 'isi_dengan_secret_key_kamu'; // Ganti dengan Secret Key dari DomaiNesia const ENDPOINT_URL = 'https://s3.nevaobjects.id'; // Endpoint S3 DomaiNesia const BUCKET_NAME = 'nama-bucket-kamu'; // Ganti dengan nama bucket kamu di DomaiNesia // Menyiapkan koneksi dengan S3 const s3 = new AWS.S3({ accessKeyId: ACCESS_KEY, // Kredensial akses secretAccessKey: SECRET_KEY, // Kredensial rahasia endpoint: ENDPOINT_URL, // Endpoint S3 DomaiNesia s3ForcePathStyle: true, // Mengaktifkan path-style URL (diperlukan untuk endpoint yang tidak menggunakan AWS, seperti DomaiNesia) signatureVersion: 'v4' // Menggunakan signature versi 4 untuk keamanan (standar modern) }); |
Penjelasan:
AWS.S3()
– membuat klien untuk menghubungkan aplikasi ke Object Storage DomaiNesia.accessKeyId
dansecretAccessKey
– ini adalah kredensial yang kamu dapatkan dari DomaiNesia.endpoint
– URL endpoint DomaiNesia yang digunakan untuk mengakses Object Storage.
2. Upload File ke Object Storage
Sekarang ini akan mengupload file ke bucket di DomaiNesia menggunakan Node.js buat file dengan contoh upload_s3.js
. Berikut adalah contoh script untuk mengupload file nama_file_kamu ke bucket:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
// Mengimpor modul 'fs' (File System) bawaan Node.js untuk membaca file dari sistem lokal const fs = require('fs'); // Nama file lokal yang akan diupload const fileName = 'nama_file_kamu.txt'; // Nama dan path file saat disimpan di dalam bucket S3 (bisa dalam folder virtual) const objectName = 'folder-di-bucket/nama_file_kamu.txt'; // Membaca isi file secara sinkron const uploadFile = () => { const fileContent = fs.readFileSync(fileName); const params = { Bucket: BUCKET_NAME, // Nama bucket tujuan Key: objectName, // Nama file dan lokasi dalam bucket Body: fileContent // Isi file yang akan diupload }; // Proses upload ke S3 s3.upload(params, (err, data) => { if (err) { console.log('Terjadi error:', err); // Tampilkan error jika gagal } else { console.log('File berhasil di upload:', data.Location); // Tampilkan URL file jika sukses } }); }; uploadFile(); // Menjalankan fungsi upload |
Berikut hasilnya jika diterapkan dalam hosting:
Penjelasan:
fs.readFileSync(fileName)
– membaca file uploadnama_file_kamu.txt
.s3.upload()
– mengupload file ke bucket dengan parameter yang telah disiapkan. Nama file yang akan disimpan di bucket disebut Key.

3. Download File dari Object Storage
Setelah file berhasil diupload, kamu bisa mendownloadnya kapan saja buat file perintah download contohnya download_s3.js
. Berikut adalah contoh cara mendownload file yang sudah ada di Object Storage dengan NodeJS:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
const downloadFile = () => { const params = { Bucket: BUCKET_NAME, // Nama bucket asal file Key: 'folder-di-bucket/nama_file_kamu.txt' // Nama file di bucket yang ingin didownload }; // Mendownload file const file = fs.createWriteStream('hasil-download.txt'); // Membuat file lokal kosong untuk menyimpan hasil download s3.getObject(params).createReadStream().pipe(file); // Mengambil file dari S3 dan mengirimkannya langsung ke file lokal console.log('File berhasil di-download!'); }; downloadFile(); // Memanggil fungsi untuk memulai proses download |
Berikut contoh hasil penerapan script diatas dari sisi kami:
Penjelasan:
s3.getObject(params).createReadStream()
– mengambil file dari Object Storage dan mengubahnya menjadi stream yang bisa diproses.fs.createWriteStream('hasil-download.txt')
– menyimpan file yang didownload ke folder lokal.
4. Menampilkan Daftar File dalam Bucket
Kamu bisa menampilkan daftar file yang ada di bucket menggunakan perintah listObjectsV2
. Berikut adalah contoh script untuk menampilkan daftar file:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
const listFiles = () => { const params = { Bucket: BUCKET_NAME // Nama bucket yang ingin ditampilkan isinya }; s3.listObjectsV2(params, (err, data) => { if (err) { console.log('Terjadi error:', err); // Menampilkan error jika gagal } else { data.Contents.forEach(file => { console.log(file.Key); // Menampilkan nama file secara individual }); } }); }; listFiles(); // Memanggil fungsi untuk melihat daftar file di bucket |
Berikut hasil penerapan script tersebut disisi kami:
Penjelasan:
s3.listObjectsV2(params)
– mengambil daftar objek yang ada di bucket.file.Key
– menampilkan nama file yang ada dalam bucket.
Sekarang kamu sudah tahu cara menghubungkan Object Storage dengan NodeJS untuk upload dan download file. Dengan Object Storage, kamu bisa menyimpan file secara aman dan mengaksesnya kapan saja. Panduan ini juga bisa kamu kembangkan lebih lanjut untuk membangun sistem backup otomatis atau media server.

Kesimpulan
Nah, itulah langkah-langkah lengkap menghubungkan Object Storage dengan NodeJS. Kamu sudah belajar bagaimana cara upload file secara langsung maupun lewat pre-signed URL, hingga mengunduh dan menampilkan file yang ada di bucket.
Gunakan integrasi ini untuk menyimpan media, dokumen, atau backup aplikasi kamu di cloud yang aman dan scalable. Ayo mulai integrasi Object Storage dengan NodeJS sekarang juga!