Deskripsi masalah
Kesalahan "SignatureDoesNotMatch" muncul saat Anda menggunakan API atau SDK OSS.
SignatureDoesNotMatch: Tanda tangan permintaan yang kami hitung tidak sesuai dengan tanda tangan yang Anda berikan. Periksa kunci dan metode penandatanganan AndaPenyebab
Saat menggunakan API atau SDK OSS, klien harus menyertakan informasi tanda tangan untuk diverifikasi oleh server OSS. Jika tanda tangan yang dihitung oleh klien tidak sesuai dengan tanda tangan yang dihitung oleh server OSS, permintaan gagal diverifikasi.
Solusi
Periksa Akurasi AK dan SK
Gunakan alat ossbrowser untuk memeriksa kebenaran AK dan SK Anda. Untuk panduan penggunaan ossbrowser, lihat Penggunaan Cepat ossbrowser.
Jika ossbrowser menunjukkan bahwa pasangan AccessKey dan SK salah, buat pasangan AccessKey baru dengan mengacu pada Buat Pasangan AccessKey.
Periksa Akurasi Informasi Endpoint
Pastikan endpoint yang digunakan sudah benar. Bucket di wilayah berbeda memiliki endpoint yang berbeda. Untuk detail lebih lanjut, lihat Nama Domain Akses dan Pusat Data. Format endpoint adalah endpoint = "http://oss-cn-beijing.aliyuncs.com". Berikut dua metode permintaan untuk sumber daya OSS:
Jika Anda meminta sumber daya OSS dalam bentuk URL, komposisi URL OSS adalah sebagai berikut:
[$Schema]://[$Bucket].[$Endpoint]/[$Object]CatatanCatatan:
[$Schema]: HTTP atau HTTPS.
[$Bucket]: Nama Bucket OSS.
[$Endpoint]: Untuk informasi lebih lanjut tentang endpoint setiap wilayah, lihat Nama Domain Akses dan Pusat Data.
[$Object]: Jalur akses objek yang diunggah ke OSS.
Jika Anda meminta sumber daya OSS dalam bentuk SDK, contohnya adalah sebagai berikut:
String accessKeyId = "XXX"; String accessKeySecret = "XXX"; String endpoint = "oss-cn-XXX.aliyuncs.com"; OSSClient client = new OSSClient(endpoint, accessKeyId, accessKeySecret);
Periksa Versi SDK
Masalah "SignatureDoesNotMatch" dapat terjadi jika Anda menggunakan versi lama SDK. Pastikan Anda menggunakan versi SDK terbaru. Informasi versi terbaru tersedia di tautan SDK situs resmi. Untuk panduan mendapatkan alamat, lihat Object Storage Service (OSS) Menyediakan SDK Bahasa Utama.
Periksa API yang Dibuat
Jika tanda tangannya berasal dari API buatan Anda sendiri, kami sarankan menggunakan SDK yang disediakan oleh OSS. Untuk informasi lebih lanjut, lihat Otorisasi Akses. Sebagai alternatif, periksa logika algoritma yang digunakan untuk menghitung tanda tangan. Untuk panduan membangun algoritma tanda tangan, lihat Sertakan Tanda Tangan dalam Header.
Ruang lingkup aplikasi
OSS