Kawan Belajar, pernahkah Anda merasa kesulitan dalam mengelola penyimpanan data Anda? Atau mungkin Anda membutuhkan solusi penyimpanan yang aman, mudah diakses, dan andal? Jika ya, Kilat Storage adalah jawabannya! Di artikel ini, kita akan menjelajahi cara membuat bucket baru di Kilat Storage dan mengunggah file ke dalamnya menggunakan AWS SDK for JavaScript. Panduan ini didasarkan pada contoh kode yang dibuat oleh Anggit M Ginanjar yang dapat ditemukan di https://github.com/itsgitz/kilatstorage-with-aws-sdk.
Persiapan #
Sebelum memulai, pastikan Anda telah menyiapkan:
- Kredensial Kilat Storage: Yang diperlukan adalah Access Key, Secret Key, Endpoint URL, dan Nama Bucket dari akun Kilat Storage Anda. Anda dapat menemukan kredensial ini di Portal Client CloudKilat. (Baca juga: Cara Mendapatkan Access Key dan Secret Key layanan Kilat Storage)
- Node.js versi 18 atau lebih baru yang sudah terinstal di komputer atau server Anda.
- Sistem operasi Debian / RedHat Family
- Sudah menginstal zip dan unzip (opsional, untuk kebutuhan ekstrak paket)
Instal Modul NodeJS #
Eksekusi perintah ini pada Terminal (untuk menginstal NodeJS versi 18) di sistem operasi Ubuntu:
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo bash -
sudo apt install nodejs -y
Unduh dan Ekstrak Source Code #
Untuk mengikuti panduan ini, Kawan Belajar dapat menggunakan projek yang sudah dibuat oleh Anggit M Ginanjar yang dapat ditemukan di https://github.com/itsgitz/kilatstorage-with-aws-sdk sebagai referensi.
Silakan eksekusi perintah ini untuk mengunduh dan mengekstrak source code:
wget https://github.com/itsgitz/kilatstorage-with-aws-sdk/archive/refs/heads/master.zip
unzip master.zip
Jika kedua perintah tersebut sudah selesai dieksekusi, silakan pindah ke direktori kilatstorage-with-aws-sdk-master dengan mengeksekusi perintah:
cd kilatstorage-with-aws-sdk-master
Instal Paket #
Setelah masuk ke direktori kilatstorage-with-aws-sdk-master, silakan eksekusi perintah di bawah. Perintah tersebut berfungsi untuk menginstal seluruh paket yang diperlukan oleh projek ini.
npm install
Buat File .env #
Buat file .env seperti contoh di atas. Anda dapat menyalin kredensial Kilat Storage Anda ke file .env dengan format berikut:
KILAT_STORAGE_ACCESS_KEY_ID="YOUR_ACCESS_KEY_ID"
KILAT_STORAGE_SECRET_ACCESS_KEY="YOUR_SECRET_ACCESS_KEY"
KILAT_STORAGE_ENDPOINT="https://s3-id-jkt-1.kilatstorage.id"
KILAT_STORAGE_BUCKETNAME="YOUR_BUCKET_NAME"
Silakan sesuaikan KILAT_STORAGE_ACCESS_KEY_ID dan KILAT_STORAGE_SECRET_ACCESS_KEY dengan kredensial yang sesuai.
Sesuaikan juga KILAT_STORAGE_BUCKETNAME dengan nama bucket yang hendak Anda buat atau gunakan.
Cara Membuat Bucket Kilat Storage #
Jalankan skrip createBucket.js menggunakan perintah berikut di terminal:
node createBucket.js
Jika Anda ingin membuat bucket baru dengan nama yang berbeda, silakan ganti KILAT_STORAGE_BUCKETNAME yang tertera pada file .env.
Cara Upload File ke dalam Bucket #
Siapkan File upload.js #
Kini saatnya menyiapkan file upload.js. Sesuai namanya, file ini berfungsi untuk mengunggah file ke dalam bucket Kilat Storage yang sudah kita buat atau definisikan sebelumnya pada bagian “KILAT_STORAGE_BUCKETNAME” di file .env.
Kawan Belajar dapat membuka file upload.js yang secara otomatis sudah tersimpan di direktori projek.
Perhatikanlah skrip di bawah ini khususnya pada skrip yang bercetak tebal. Bagian tersebut menentukan lokasi penyimpanan file yang akan di-upload.
import 'dotenv/config'
import { S3Client, PutObjectCommand } from '@aws-sdk/client-s3'
import {createReadStream} from 'fs'
if (!process.env.KILAT_STORAGE_ACCESS_KEY_ID) {
throw Error('KilatStorage access key is required!')
}
if (!process.env.KILAT_STORAGE_SECRET_ACCESS_KEY) {
throw Error('KilatStorage secret access key is required!')
}
if (!process.env.KILAT_STORAGE_ENDPOINT) {
throw Error('KilatStorage endpoint is required!')
}
if (!process.env.KILAT_STORAGE_BUCKETNAME) {
throw Error('KilatStorage bucket name is required!')
}
const upload = async () => {
try {
const localFilePath = './img/cloudkilat-white.png'
const fileStream = createReadStream(localFilePath)
// KilatStorage can be accessed using AWS SDK v3 for Node.js
// - Select the region us-east-1 as default region
// - We use different endpoint from AWS, thus use https://s3-id-jkt-1.kilatstorage.id
const client = new S3Client({
region: 'us-east-1',
credentials: {
accessKeyId: process.env.KILAT_STORAGE_ACCESS_KEY_ID,
secretAccessKey: process.env.KILAT_STORAGE_SECRET_ACCESS_KEY
},
endpoint: process.env.KILAT_STORAGE_ENDPOINT
})
// Upload image from ./img directory
const command = new PutObjectCommand({
ACL: 'public-read',
Bucket: process.env.KILAT_STORAGE_BUCKETNAME,
Key: 'uploaded-cloudkilat-white.png',
Body: fileStream
})
console.log('Uploading object to', process.env.KILAT_STORAGE_BUCKETNAME)
const response = await client.send(command)
console.log(response)
} catch (e) {
console.log(e)
}
}
upload()
Sebagai contoh, kami memodifikasi skrip ini agar dapat mengunggah gambar bernama cloudkilat-white.png dari direktori ./img. Kemudian file tersebut akan disimpan di bucket Kilat Storage dengan nama uploaded-cloudkilat-white.png.
Bila Anda menggunakan skrip upload.js
seperti yang kami contohkan pada langkah di atas, maka Anda perlu membuat folder img terlebih dahulu di direktori proyek Anda. Folder ini harus berisi file yang akan diunggah.
Jalankan script upload.js
menggunakan perintah berikut di terminal:
node upload.js
Berikut hasil eksekusi skrip upload.js yang memberikan output keterangan bahwa gambar sudah berhasil di-upload:
Penutup #
Dengan mengikuti langkah-langkah di atas, kami harap Anda dapat membuat bucket di Kilat Storage dan mengunggah file ke dalamnya menggunakan AWS SDK for JavaScript v3. Panduan ini dapat dijadikan referensi dan dikembangkan sesuai kebutuhan, khususnya bagi Anda yang akrab menggunakan NodeJS.
Kilat Storage adalah solusi penyimpanan cloud yang terpercaya dan mudah digunakan. Tim dukungan CloudKilat siap membantu Anda 24/7 untuk memastikan pengalaman penyimpanan data Anda yang lancar dan memuaskan. Jangan ragu untuk menghubungi kami jika Anda memiliki pertanyaan atau membutuhkan bantuan.
Selamat mencoba! š