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.
GET /api/storage/object
1.2 Mendapatkan Harga / Skema Harga Tiering
Mengambil skema harga (Price per Hour dan Unit) untuk referensi UI Frontend.
GET /api/storage/object/price
1.3 Membuat Bucket Baru
Membuat bucket Object Storage baru.
POST /api/storage/object
Content-Type: application/json
{
"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.
PATCH /api/storage/object/{uuid}/acl
Content-Type: application/json
{
"public_acl": "A"
}
Catatan: Nilai
public_aclmenggunakan"A"untuk Public dan"P"untuk Private.
1.5 Melebarkan Kapasitas (Resize) Bucket
Melebarkan kapasitas penyimpanan (Size) bucket S3.
PATCH /api/storage/object/{uuid}/resize
Content-Type: application/json
{
"size": 100
}
Catatan: Kapasitas dalam satuan GB (Gigabyte).
1.6 Menghapus Bucket
Menghapus bucket secara permanen.
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.
GET /api/storage/object/keys
2.2 Membuat Access Key Baru
Membuat pasangan kredensial S3 baru.
POST /api/storage/object/keys
Content-Type: application/json
{
"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.
PATCH /api/storage/object/keys/{accessKey}
Content-Type: application/json
{
"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.
POST /api/storage/object/keys/{accessKey}/buckets
Content-Type: application/json
{
"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.
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).
DELETE /api/storage/object/keys/{accessKey}