全部产品
Search
文档中心

Object Storage Service:Contoh Mengunggah Header Tanda Tangan Menggunakan PHP dalam Layanan Penyimpanan Objek

更新时间:Jun 26, 2025

Ikhtisar

SDK OSS menyediakan alat untuk mengintegrasikan tanda tangan serta proses unggah dan unduh. Namun, Anda mungkin perlu menggunakan operasi API untuk mengunggah dan mengunduh objek dengan tanda tangan dalam praktiknya. Topik ini menggunakan PutObject sebagai contoh untuk menjelaskan cara memanggil operasi PutObject di PHP.

Catatan

Catatan: Disarankan untuk menggunakan SDK OSS. Topik ini memberikan contoh penggunaan tanda tangan untuk mengunggah objek. Anda dapat menyesuaikan kode sesuai kebutuhan bisnis dalam implementasi nyata.

Detail

Berikut adalah contoh kode untuk mengimplementasikan PutObject di PHP 5.6.30:

<? php 
function curlput($url,$data,$method='PUT',$bucket,$object,$accesskey ,$accesskeySecret){
 $time = gmdate ("D, d M Y H:i:s T");
    $str = "PUT\n\n"."application/json\n".$time."\n/".$bucket." /".$object;
    //echo($str);
    $signature = base64_encode(hash_hmac("sha1", $str, $accesskeySecret, true));
    //echo($time);
    //echo($signature);
$ch = curl_init(); // inisialisasi handle CURL.
curl_setopt($ch, CURLOPT_URL, $url); // Setel URL permintaan.
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method); // Setel metode permintaan.
    
    $headers = array(
    "Date:".$time,
    'Content-Type:application/json',
    "Authorization:OSS ".$accesskey.":".$signature
    );
curl_setopt($ch,CURLOPT_HTTPHEADER,$headers);// Setel header HTTP.
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);// Setel string yang akan dikirimkan.
$document = curl_exec($ch);// jalankan CURL yang telah ditentukan sebelumnya
    if(! curl_errno($ch)){ 
      $info = curl_getinfo($ch); 
      echo 'Mengambil ' . $info['total_time'] . ' detik untuk mengirimkan permintaan ke ' . $info['url']; 
    } else { 
      echo 'Kesalahan Curl: ' . curl_error($ch); 
    }
    curl_close($ch);
     
    return $document;
}

$accesskey ='xxx';
$accesskeySecret ='xxx';
$bucket = 'namabucket';
$object = 'mytest/2.txt';
$url = 'http://bucketname.oss-cn-hangzhou.aliyuncs.com/mytest/2.txt';
$data = "{wewwe:wewee}";
$return = curlput($url, $data, 'PUT',$bucket,$object,$accesskey,$accesskeySecret);
 
var_dump($return);
exit;
? >

Dokumentasi

Untuk informasi lebih lanjut tentang penggunaan SDK OSS, lihat menambahkan tanda tangan ke header OSS.

Ruang Lingkup

  • OSS