Lewati ke konten utama

Object Storage

Fitur Object Storage menyediakan penyimpanan cloud berbasis bucket yang sepenuhnya kompatibel dengan protokol Amazon S3. Penyimpanan ini sangat ideal untuk menyimpan aset statis, dokumen, file media, dan cadangan data.


1. Manajemen Bucket

1.1 Melihat Daftar Bucket

Mendapatkan daftar seluruh Object Storage (bucket) milik pelanggan.

Request
GET /api/storage/object

1.2 Mendapatkan Harga / Skema Harga Tiering

Mengambil skema harga (Price per Hour dan Unit) untuk referensi UI Frontend.

Request
GET /api/storage/object/price

1.3 Membuat Bucket Baru

Membuat bucket Object Storage baru.

Request
POST /api/storage/object
Content-Type: application/json
Request Body
{
"name": "my-assets-bucket",
"location_id": 1
}

Catatan: Nama bucket harus unik di seluruh sistem karena akan digunakan sebagai bagian dari URL endpoint S3. Nama hanya boleh berisi huruf kecil, angka, dan tanda hubung (-).

1.4 Mengubah Akses (ACL) Bucket

Secara default, bucket bersifat Private. Anda dapat mengubahnya menjadi Public agar siapapun bisa membaca isi bucket melalui URL publik.

Request
PATCH /api/storage/object/{uuid}/acl
Content-Type: application/json
Request Body
{
"public_acl": "A"
}

Catatan: Nilai public_acl menggunakan "A" untuk Public dan "P" untuk Private.

1.5 Melebarkan Kapasitas (Resize) Bucket

Melebarkan kapasitas penyimpanan (Size) bucket S3.

Request
PATCH /api/storage/object/{uuid}/resize
Content-Type: application/json
Request Body
{
"size": 100
}

Catatan: Kapasitas dalam satuan GB (Gigabyte).

1.6 Menghapus Bucket

Menghapus bucket secara permanen.

Request
DELETE /api/storage/object/{uuid}

Peringatan: Pastikan bucket dalam keadaan kosong (seluruh objek/file di dalamnya sudah dihapus) sebelum menghapus bucket.


2. Manajemen Access Key (Kredensial S3)

Untuk mengakses bucket menggunakan S3 Client (seperti AWS CLI, Cyberduck, atau S3 SDK), Anda memerlukan kredensial berupa Access Key dan Secret Key.

2.1 Melihat Daftar Access Key

Menampilkan seluruh Access Key yang dimiliki oleh akun Anda.

Request
GET /api/storage/object/keys

2.2 Membuat Access Key Baru

Membuat pasangan kredensial S3 baru.

Request
POST /api/storage/object/keys
Content-Type: application/json
Request Body
{
"name": "Kredensial untuk aplikasi backend",
"location_id": 1
}

Respons (201 Created): API akan mengembalikan pasangan AccessKey dan SecretKey. Secret Key hanya akan ditampilkan satu kali saat pertama kali dibuat, simpanlah di tempat yang aman.

2.3 Mengaktifkan / Menonaktifkan Access Key

Mengubah status sebuah Access Key untuk menonaktifkan sementara tanpa harus menghapusnya.

Request
PATCH /api/storage/object/keys/{accessKey}
Content-Type: application/json
Request Body
{
"is_active": false
}

2.4 Menambahkan Akses Bucket ke Access Key

Secara spesifik memberikan akses Read_Only atau Read_Write ke sebuah bucket untuk Access Key tertentu.

Request
POST /api/storage/object/keys/{accessKey}/buckets
Content-Type: application/json
Request Body
{
"bucket_uuid": "550e8400-e29b-41d4-a716-446655440000",
"acl": "Read_Write"
}

2.5 Mencabut Akses Bucket dari Access Key

Menghapus (mencabut) akses spesifik dari sebuah bucket pada Access Key tertentu.

Request
DELETE /api/storage/object/keys/{accessKey}/buckets/{bucketUuid}

2.6 Menghapus Access Key

Menghapus kredensial secara permanen. Aplikasi yang menggunakan Access Key ini akan langsung terputus koneksinya (mendapatkan error akses ditolak).

Request
DELETE /api/storage/object/keys/{accessKey}