Tüm Ürünler
Search
Belge Merkezi

Object Storage Service:Configure object metadata when you upload an object (OSS SDK for PHP 1.0)

Son Güncelleme:Oct 01, 2026

Object Storage Service (OSS) içinde depolanan nesneler anahtar, veri ve nesne meta verilerinden oluşur. Meta veriler nesneyi açıklar ve standart HTTP üst bilgileri ile kullanıcı meta verilerini içerir. Standart HTTP üst bilgilerini yapılandırarak nesne önbelleğe alma veya zorunlu nesne indirme ilkeleri gibi özel HTTP istek ilkeleri oluşturabilirsiniz. Nesnenin amaçlarını veya niteliklerini tanımlamak için kullanıcı meta verilerini yapılandırabilirsiniz.

Kullanım notları

  • Bu konuda Çin (Hangzhou) bölgesinin genel uç noktası kullanılmıştır. Aynı bölgedeki diğer Alibaba Cloud hizmetlerinden OSS'ye erişmek için dahili uç nokta kullanın. Desteklenen bölgeler ve uç noktalar hakkında ayrıntılı bilgi için bkz. Bölgeler ve uç noktalar.

  • Bu konu, bir OSS uç noktası ile OssClient örneği oluşturmayı göstermektedir. Özel etki alanı kullanma veya Security Token Service (STS) kimlik bilgileriyle kimlik doğrulama yapma gibi alternatif yapılandırmalar için bkz. OssClient oluşturun.

  • Nesne meta verilerini yapılandırmak için oss:PutObject iznine sahip olmanız gerekir. Daha fazla bilgi için bkz. Özel ilke atayın.

Örnek kod

Aşağıdaki örnek kod, bir nesne yüklerken nesne meta verilerinin nasıl yapılandırılacağını gösterir.

Uyarı

Yüklemek istediğiniz nesne için meta verileri yapılandırmadan önce, hedef dizinde aynı ada sahip mevcut bir nesne olup olmadığını kontrol edin. Bu işlem, nesnelerin istemeden üzerine yazılmasını önler. Daha fazla bilgi için bkz. Bir pakete nesne yüklerken ve aynı anda meta veri ayarlarken, paketteki aynı ada sahip mevcut nesnenin üzerine yazılmasını nasıl önleyebilirim?

<?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;

// Obtain access credentials from environment variables. Before you run the sample code, make sure that the OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET environment variables are configured.  
$provider = new EnvironmentVariableCredentialsProvider();
// Specify the endpoint of the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the endpoint to https://oss-cn-hangzhou.aliyuncs.com. 
$endpoint = "yourEndpoint";
// Specify the name of the bucket. Example: examplebucket. 
$bucket= "examplebucket";
// Specify the full path of the object. Do not include the bucket name in the full path. Example: 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 define meta info',
    ));
try{
    $config = array(
        "provider" => $provider,
        "endpoint" => $endpoint,
        "signatureVersion" => OssClient::OSS_SIGNATURE_VERSION_V4,
        "region"=> "cn-hangzhou"
    );
    $ossClient = new OssClient($config);
    // Configure object metadata when you upload the object. 
    $ossClient->putObject($bucket, $object, $content, $options);
} catch(OssException $e) {
    printf(__FUNCTION__ . ": FAILED\n");
    printf($e->getMessage() . "\n");
    return;
}
print(__FUNCTION__ . ": OK" . "\n");
            

İlgili kaynaklar

  • Bir nesne yüklerken nesne meta verilerini yapılandırmak için kullanılan tam örnek kodu görmek üzere GitHub adresini ziyaret edin.

  • Bir nesne yüklerken nesne meta verilerini yapılandırmak için çağırabileceğiniz API işlemi hakkında daha fazla bilgi için bkz. PutObject.

Sık Sorulan Sorular

Bir pakete nesne yüklerken ve aynı anda meta veri ayarlarken, paketteki aynı ada sahip mevcut nesnenin üzerine yazılmasını nasıl önleyebilirim?

Paketteki aynı ada sahip nesnelerin üzerine yazılmasını önlemek için aşağıdaki yöntemlerden birini kullanabilirsiniz:

  • Sürüm oluşturmayı etkinleştirin

    Paket için sürüm oluşturmayı etkinleştirirseniz OSS, aynı ada sahip mevcut nesneyi önceki bir sürüm olarak saklar ve yüklediğiniz nesneyi geçerli sürüm olarak depolar. Bir nesnenin önceki sürümlerini istediğiniz zaman geri yükleyebilirsiniz. Daha fazla bilgi için bkz. Sürüm oluşturmayı etkinleştirin.

  • Yükleme isteğine x-oss-forbid-overwrite üst bilgisini ekleyin

    Yükleme isteğine x-oss-forbid-overwrite üst bilgisini ekleyebilir ve değeri true olarak ayarlayabilirsiniz. Hedef dizinde zaten var olan aynı ada sahip bir nesne yüklerseniz yükleme başarısız olur ve OSS FileAlreadyExists hatasını döndürür. Daha fazla bilgi için bkz. PutObject.