Jika bisnis Anda memerlukan tingkat penyesuaian yang tinggi, Anda dapat langsung memanggil API RESTful. Untuk memanggil API secara langsung, Anda harus menyertakan perhitungan tanda tangan dalam kode Anda. Object Storage Service (OSS) hanya mendukung URL bergaya virtual-hosted dalam permintaan API RESTful.
Gaya permintaan
Untuk alasan keamanan, Anda hanya dapat menggunakan URL bergaya virtual-hosted dan bukan URL bergaya path saat menginisiasi permintaan API RESTful. URL bergaya virtual-hosted mencakup nama bucket.
Format URL bergaya virtual-hosted:
https://NamaBucket.Endpoint/namaObjekContoh URL bergaya virtual-hosted:
https://examplebucket.oss-cn-hangzhou.aliyuncs.com/demo.pngFormat header permintaan
Kode berikut menunjukkan format header permintaan dari permintaan API RESTful yang dikirim ke OSS:
GET / HTTP/1.1
Host: NamaBucket.Endpoint
Date: Tanggal GMT
Authorization: NilaiTandaTanganHeader | Tipe | Deskripsi |
Date | String | Waktu GMT yang ditentukan dalam protokol HTTP/1.1. Contoh: Sun, 05 Sep 2021 23:00:00 GMT. Header ini kosong secara default. |
Host | String | Nama domain akses. Format: Header ini kosong secara default. |
Authorization | String | Informasi otentikasi yang digunakan untuk memverifikasi validitas permintaan. Header ini kosong secara default. Skenario: permintaan non-anonim. |
Contoh permintaan
Contoh Permintaan untuk URL Bergaya Virtual-Hosted
Contoh sumber daya OSS:
Nama Bucket: examplebucket
Wilayah: oss-cn-hangzhou
Nama Objek: demo.png
Contoh URL:
https://examplebucket.oss-cn-hangzhou.aliyuncs.com/demo.pngContoh permintaan:
GET /demo.png HTTP/1.1
Host: examplebucket.oss-cn-hangzhou.aliyuncs.com
Date: Tanggal GMT
Authorization: NilaiTandaTanganContoh Permintaan untuk Nama Domain Kustom
Contoh nama domain kustom:
www.example.com
Contoh sumber daya OSS:
Nama Bucket: examplebucket
Nama Objek: demo.png
Contoh URL:
https://www.example.com/demo.pngContoh permintaan:
GET /demo.png HTTP/1.1
Host: example.com
Date: Tanggal GMT
Authorization: NilaiTandaTanganMetode tanda tangan
Anda dapat menggunakan salah satu metode berikut untuk menghitung tanda tangan dan menambahkan tanda tangan ke permintaan API RESTful:
Tambahkan tanda tangan ke header permintaan: Dalam sebagian besar kasus, kami merekomendasikan agar Anda menggunakan metode ini. Untuk informasi lebih lanjut, lihat Sertakan tanda tangan di header Authorization.
Tambahkan tanda tangan ke URL: Jika Anda menggunakan URL bertanda tangan untuk berbagi data, data tersebut dapat diperoleh oleh semua pengguna melalui Internet selama periode validitas URL bertanda tangan. Hal ini menyebabkan risiko keamanan. Jika Anda ingin memberikan URL dengan informasi tanda tangan kepada pengguna pihak ketiga untuk akses yang sah, Anda dapat menggunakan metode ini. Untuk informasi lebih lanjut, lihat Tambahkan tanda tangan ke URL.
Tabel berikut menjelaskan perbedaan antara kedua metode tanda tangan tersebut.
Item | Tambahkan tanda tangan ke header permintaan | Tambahkan tanda tangan ke URL |
Konfigurasi parameter Expires | Tidak | Ya |
Metode permintaan umum | GET, POST, PUT, dan DELETE | GET dan PUT |
Format waktu | Header permintaan Date digunakan untuk menentukan waktu permintaan dalam format GMT. Penting Jika selisih antara waktu yang ditentukan oleh header Date dalam suatu permintaan dan waktu pada server saat permintaan diterima lebih dari 15 menit, OSS akan menolak permintaan dan mengembalikan kode status HTTP 403. | Parameter Expires digunakan untuk menentukan waktu kedaluwarsa URL bertanda tangan dalam format timestamp Unix. Penting Jika waktu saat OSS menerima permintaan URL lebih lambat daripada nilai parameter Expires yang termasuk dalam tanda tangan, kesalahan timeout permintaan akan dikembalikan. |
Tanda tangan terkode URL | Tidak | Ya |
Operasi API
Untuk informasi lebih lanjut tentang operasi API yang disediakan oleh OSS, lihat Daftar operasi berdasarkan fungsi.