全部产品
Search
文档中心

Object Storage Service:Atur metadata saat mengunggah objek (PHP SDK V1)

更新时间:Nov 29, 2025

Objek yang disimpan di Object Storage Service (OSS) terdiri dari kunci, data, dan metadata objek. Metadata objek menjelaskan properti suatu objek, mencakup header HTTP standar dan metadata yang ditentukan pengguna. Anda dapat mengatur header HTTP standar untuk menentukan kebijakan permintaan HTTP kustom—seperti kebijakan cache atau unduhan paksa—serta mengatur metadata yang ditentukan pengguna untuk mengidentifikasi tujuan atau properti objek tersebut.

Catatan

  • Topik ini menggunakan titik akhir publik wilayah China (Hangzhou). Untuk mengakses OSS dari layanan Alibaba Cloud lainnya dalam wilayah yang sama, gunakan titik akhir internal. Untuk detail mengenai wilayah dan titik akhir yang didukung, lihat Regions and endpoints.

  • Pada topik ini, instans OSSClient dibuat menggunakan titik akhir OSS. Jika Anda ingin membuat instans OSSClient dengan nama domain kustom atau Security Token Service (STS), lihat Create an OssClient instance.

  • Untuk mengatur metadata objek, Anda harus memiliki izin oss:PutObject. Untuk informasi selengkapnya, lihat Grant custom permissions to a RAM user.

Kode contoh

Kode berikut menunjukkan cara mengatur metadata saat mengunggah objek.

Peringatan

Jika objek dengan nama yang sama sudah ada di bucket, objek tersebut akan ditimpa saat Anda mengatur metadata selama proses pengunggahan. Untuk informasi lebih lanjut tentang cara mencegah penimpaan objek dengan nama yang sama, lihat Prevent overwriting an object with the same name.

<?php
if (is_file(__DIR__ . '/../autoload.php')) {
    require_once __DIR__ . '/../autoload.php';
}
if (is_file(__DIR__ . '/../vendor/autoload.php')) {
    require_once __DIR__ . '/../vendor/autoload.php';
}

use OSS\Credentials\EnvironmentVariableCredentialsProvider;
use OSS\OssClient;
use OSS\CoreOssException;

// Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah diatur. 
$provider = new EnvironmentVariableCredentialsProvider();
// Ganti yourEndpoint dengan titik akhir wilayah tempat bucket berada. Misalnya, untuk wilayah China (Hangzhou), atur titik akhir menjadi https://oss-cn-hangzhou.aliyuncs.com.
$endpoint = "yourEndpoint";
// Tentukan nama bucket. Contoh: examplebucket.
$bucket= "examplebucket";
// Tentukan path lengkap objek. Path lengkap tidak boleh mengandung nama bucket. Contoh: exampledir/exampleobject.txt.
$object = "exampledir/exampleobject.txt";
$content = file_get_contents(__FILE__);
$options = array(
    OssClient::OSS_HEADERS => array(
        'Expires' => '2012-10-01 08:00:00',
        'Content-Disposition' => 'attachment; filename="xxxxxx"',
        'x-oss-meta-self-define-title' => 'user-defined meta info',
    ));
try{
    $config = array(
        "provider" => $provider,
        "endpoint" => $endpoint,
        "signatureVersion" => OssClient::OSS_SIGNATURE_VERSION_V4,
        "region"=> "cn-hangzhou"
    );
    $ossClient = new OssClient($config);
    // Atur metadata saat mengunggah objek.
    $ossClient->putObject($bucket, $object, $content, $options);
} catch(OssException $e) {
    printf(__FUNCTION__ . ": FAILED\n");
    printf($e->getMessage() . "\n");
    return;
}
print(__FUNCTION__ . ": OK" . "\n");
            

Referensi

  • Untuk kode contoh lengkap tentang cara mengatur metadata saat mengunggah objek, lihat GitHub.

  • Untuk informasi selengkapnya tentang operasi API yang dapat dipanggil untuk mengatur metadata saat mengunggah objek, lihat PutObject.

FAQ

Bagaimana cara mencegah penimpaan objek dengan nama yang sama saat saya mengunggah objek dan mengatur metadatanya?

Untuk mencegah penimpaan objek dengan nama yang sama di bucket, gunakan salah satu metode berikut:

  • Aktifkan Pengendalian versi

    Setelah Anda mengaktifkan Pengendalian versi, objek yang ditimpa di bucket akan disimpan sebagai versi historis. Anda dapat memulihkan versi historis kapan saja. Untuk informasi selengkapnya, lihat Enable versioning.

  • Sertakan parameter dalam permintaan unggah untuk mencegah penimpaan

    Sertakan parameter x-oss-forbid-overwrite di header permintaan unggah dan atur nilainya ke true. Jika Anda mengunggah objek yang memiliki nama yang sama dengan objek yang sudah ada di bucket, proses unggah akan gagal dan error FileAlreadyExists dikembalikan. Untuk informasi selengkapnya, lihat PutObject.