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}