Skip to content

Protokol S3 ​

Ikhtisar ​

Memesplora menyediakan API yang kompatibel dengan AWS S3, memungkinkan penggunaan klien kompatibel S3 apa pun (seperti rclone, AWS CLI, MinIO Client) untuk mengakses ruang penyimpanan secara langsung.

Port ​

S3 API mendengarkan di port :5213.

Otentikasi ​

Menggunakan algoritma tanda tangan AWS Signature V4. Access Key dan Secret Key diperoleh dari antarmuka manajemen web.

API S3 yang Didukung ​

Operasi Bucket ​

OperasiHTTPJalurDeskripsi
ListBucketsGET/Mendaftar semua Bucket (ruang)
HeadBucketHEAD/{bucket}Memeriksa apakah Bucket ada
GetBucketLocationGET/{bucket}?locationMendapatkan wilayah Bucket

Operasi Objek ​

OperasiHTTPJalurDeskripsi
GetObjectGET/{bucket}/{key}Mengunduh objek
PutObjectPUT/{bucket}/{key}Mengunggah objek
DeleteObjectDELETE/{bucket}/{key}Menghapus objek
HeadObjectHEAD/{bucket}/{key}Mendapatkan metadata objek
ListObjectsGET/{bucket}Mendaftar objek
ListObjectsV2GET/{bucket}?list-type=2Mendaftar objek V2
DeleteObjectsPOST/{bucket}?deleteMenghapus massal
CopyObjectPUT/{bucket}/{key} (x-amz-copy-source)Menyalin objek

Unggahan Multi-Bagian ​

OperasiHTTPJalurDeskripsi
CreateMultipartUploadPOST/{bucket}/{key}?uploadsMenginisialisasi unggahan multi-bagian
UploadPartPUT/{bucket}/{key}?partNumber=&uploadId=Mengunggah bagian
CompleteMultipartUploadPOST/{bucket}/{key}?uploadId=Menyelesaikan unggahan multi-bagian
AbortMultipartUploadDELETE/{bucket}/{key}?uploadId=Membatalkan unggahan multi-bagian
ListPartsGET/{bucket}/{key}?uploadId=Mendaftar bagian yang diunggah

Contoh Penggunaan ​

Menggunakan AWS CLI ​

bash
# Konfigurasi
aws configure --profile memesplora
# AWS Access Key ID: your-access-key
# AWS Secret Access Key: your-secret-key
# Default region: us-east-1

# Mendaftar Bucket
aws s3 --endpoint-url http://localhost:5213 ls

# Mengunggah file
aws s3 --endpoint-url http://localhost:5213 cp file.txt s3://my-space/

# Mengunduh file
aws s3 --endpoint-url http://localhost:5213 cp s3://my-space/file.txt .

# Mendaftar objek
aws s3 --endpoint-url http://localhost:5213 ls s3://my-space/

Menggunakan rclone ​

bash
# Konfigurasi remote
rclone config
# Pilih S3 Compatible
# endpoint: http://localhost:5213
# access_key_id: your-access-key
# secret_access_key: your-secret-key

# Mengunggah file
rclone copy file.txt memesplora:my-space/

# Mengunduh file
rclone copy memesplora:my-space/file.txt .

# Mendaftar file
rclone ls memesplora:my-space/

Menggunakan MinIO Client ​

bash
# Konfigurasi alias
mc alias set memesplora http://localhost:5213 your-access-key your-secret-key

# Mendaftar Bucket
mc ls memesplora

# Mengunggah file
mc cp file.txt memesplora/my-space/

# Mengunduh file
mc cp memesplora/my-space/file.txt .

Respons Kesalahan ​

xml
<?xml version="1.0" encoding="UTF-8"?>
<Error>
    <Code>NoSuchKey</Code>
    <Message>The specified key does not exist.</Message>
    <Key>file.txt</Key>
    <RequestId>...</RequestId>
    <HostId>...</HostId>
</Error>

Verifikasi Tanda Tangan ​

Mendukung algoritma tanda tangan AWS Signature V4:

  1. Hitung kunci tanda tangan
  2. Buat permintaan kanonis
  3. Hitung tanda tangan
  4. Verifikasi tanda tangan cocok dengan Authorization di header permintaan

Catatan ​

  • Nama Bucket sesuai dengan nama ruang di Memesplora
  • Object Key sesuai dengan jalur file
  • Saat ini tidak mendukung Bucket Policy dan ACL (semua akses dikontrol melalui otentikasi pengguna)
  • Tidak mendukung versioning S3

Apache License 2.0