OSS mendukung penandaan objek (object tagging) untuk mengklasifikasikan objek dalam bucket. Anda dapat menetapkan aturan siklus hidup dan izin akses untuk objek yang memiliki tag yang sama.
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 menyetel tag objek, Anda harus memiliki izin
oss:PutObjectTagging. Untuk informasi selengkapnya, lihat Grant a custom access policy to a RAM user.
Tambahkan tag objek saat unggah
Contoh berikut menunjukkan cara menambahkan tag objek untuk unggah simple, unggah multi-bagian, dan unggah append.
Menambahkan tag objek saat unggah simple
Kode berikut menunjukkan cara menambahkan tag objek saat unggah simple.
<?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 contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah disetel. $provider = new EnvironmentVariableCredentialsProvider(); // Setel yourEndpoint ke Endpoint wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), setel Endpoint ke https://oss-cn-hangzhou.aliyuncs.com. $endpoint = "yourEndpoint"; // Tentukan nama bucket. Misalnya, examplebucket. $bucket = "examplebucket"; // Tentukan path lengkap objek. Path lengkap tidak boleh mengandung nama bucket. Misalnya, exampledir/exampleobject.txt. $object = "exampledir/exampleobject.txt"; // Tentukan string yang akan diunggah. $content = "hello world"; $config = array( "provider" => $provider, "endpoint" => $endpoint, "signatureVersion" => OssClient::OSS_SIGNATURE_VERSION_V4, "region"=> "cn-hangzhou" ); $ossClient = new OssClient($config); // Setel tag objek. $options = array( OssClient::OSS_HEADERS => array( 'x-oss-tagging' => 'key1=value1&key2=value2&key3=value3', )); try { // Unggah objek menggunakan unggah simple. $ossClient->putObject($bucket, $object, $content, $options); } catch (OssException $e) { printf(__FUNCTION__ . ": FAILED\n"); printf($e->getMessage() . "\n"); return; } print(__FUNCTION__ . ": OK" . "\n");Tambahkan tag objek saat unggah multi-bagian
Kode berikut menunjukkan cara menambahkan tag objek saat mengunggah file lokal ke OSS menggunakan unggah multi-bagian.
<?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 contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah disetel. $provider = new EnvironmentVariableCredentialsProvider(); // Setel yourEndpoint ke Endpoint wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), setel Endpoint ke https://oss-cn-hangzhou.aliyuncs.com. $endpoint = "yourEndpoint"; // Tentukan nama bucket. Misalnya, examplebucket. $bucket = "examplebucket"; // Tentukan path lengkap objek. Path lengkap tidak boleh mengandung nama bucket. Misalnya, exampledir/exampleobject.txt. $object = "exampledir/exampleobject.txt"; // Tentukan path lengkap file lokal, seperti D:\\localpath\\examplefile.txt. Jika hanya menentukan nama file, seperti examplefile.txt, file akan diunggah dari path lokal proyek tempat program contoh berada. $file = "D:\\localpath\\examplefile.txt"; $config = array( "provider" => $provider, "endpoint" => $endpoint, "signatureVersion" => OssClient::OSS_SIGNATURE_VERSION_V4, "region"=> "cn-hangzhou" ); $ossClient = new OssClient($config); // Setel tag objek. $options = array( OssClient::OSS_CHECK_MD5 => true, OssClient::OSS_PART_SIZE => 1, OssClient::OSS_HEADERS => array( 'x-oss-tagging' => 'key1=value1&key2=value2&key3=value3', ), ); try { // Unggah objek menggunakan unggah multi-bagian. $ossClient->multiuploadFile($bucket, $object, $file, $options); } catch (OssException $e) { printf(__FUNCTION__ . ": FAILED\n"); printf($e->getMessage() . "\n"); return; } print(__FUNCTION__ . ": OK" . "\n");Menambahkan tag objek saat unggah append
Kode berikut menunjukkan cara menambahkan tag objek saat unggah append.
<?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 contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah disetel. $provider = new EnvironmentVariableCredentialsProvider(); // Setel yourEndpoint ke Endpoint wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), setel Endpoint ke https://oss-cn-hangzhou.aliyuncs.com. $endpoint = "yourEndpoint"; // Tentukan nama bucket. Misalnya, examplebucket. $bucket = "examplebucket"; // Tentukan path lengkap objek. Path lengkap tidak boleh mengandung nama bucket. Misalnya, exampledir/exampleobject.txt. $object = "exampledir/exampleobject.txt"; // Tentukan string yang akan ditambahkan secara berurutan. $content_array = array('Hello OSS', 'Hi OSS'); $config = array( "provider" => $provider, "endpoint" => $endpoint, "signatureVersion" => OssClient::OSS_SIGNATURE_VERSION_V4, "region"=> "cn-hangzhou" ); $ossClient = new OssClient($config); // Setel tag objek. $options = array( OssClient::OSS_HEADERS => array( 'x-oss-tagging' => 'key1=value1&key2=value2', )); try { // Unggah objek menggunakan unggah append. $position = $ossClient->appendObject($bucket, $object, $content_array[0], 0, $options); $position = $ossClient->appendObject($bucket, $object, $content_array[1], $position); } catch (OssException $e) { printf(__FUNCTION__ . ": FAILED\n"); printf($e->getMessage() . "\n"); return; } print(__FUNCTION__ . ": OK" . "\n");
Tambahkan atau ubah tag objek untuk objek yang telah diunggah
Jika Anda tidak menambahkan tag objek saat mengunggah objek, atau tag yang ada tidak lagi memenuhi kebutuhan Anda, Anda dapat menambahkan atau mengubah tag objek setelah proses unggah selesai.
Kode berikut menunjukkan cara menambahkan atau mengubah tag objek untuk objek yang telah diunggah.
<?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\Core\OssException;
use OSS\Model\TaggingConfig;
use OSS\Model\Tag;
// Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah disetel.
$provider = new EnvironmentVariableCredentialsProvider();
// Setel yourEndpoint ke Endpoint wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), setel Endpoint ke https://oss-cn-hangzhou.aliyuncs.com.
$endpoint = "yourEndpoint";
// Tentukan nama bucket. Misalnya, examplebucket.
$bucket = "examplebucket";
// Tentukan path lengkap objek. Path lengkap tidak boleh mengandung nama bucket. Misalnya, exampledir/exampleobject.txt.
$object = "exampledir/exampleobject.txt";
$config = array(
"provider" => $provider,
"endpoint" => $endpoint,
"signatureVersion" => OssClient::OSS_SIGNATURE_VERSION_V4,
"region"=> "cn-hangzhou"
);
$ossClient = new OssClient($config);
// Setel tag objek.
$config = new TaggingConfig();
$config->addTag(new Tag("key1", "value1"));
$config->addTag(new Tag("key2", "value2"));
try {
$ossClient->putObjectTagging($bucket, $object, $config);
} catch (OssException $e) {
printf(__FUNCTION__ . ": FAILED\n");
printf($e->getMessage() . "\n");
return;
}
print(__FUNCTION__ . ": OK" . "\n");Tambahkan atau ubah tag objek untuk versi objek tertentu
Dalam bucket yang telah mengaktifkan Pengendalian versi, Anda dapat menambahkan atau mengubah tag objek untuk versi tertentu dari suatu objek dengan menentukan ID versinya.
Kode berikut menunjukkan cara menambahkan atau mengubah tag objek untuk versi tertentu dari suatu objek.
Untuk informasi lebih lanjut tentang cara mendapatkan ID versi, lihat List objects (PHP SDK V1).
<?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\Core\OssException;
use OSS\Model\TaggingConfig;
use OSS\Model\Tag;
// Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah disetel.
$provider = new EnvironmentVariableCredentialsProvider();
// Setel yourEndpoint ke Endpoint wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), setel Endpoint ke https://oss-cn-hangzhou.aliyuncs.com.
$endpoint = "yourEndpoint";
// Tentukan nama bucket. Misalnya, examplebucket.
$bucket = "examplebucket";
// Tentukan path lengkap objek. Path lengkap tidak boleh mengandung nama bucket. Misalnya, exampledir/exampleobject.txt.
$object = "exampledir/exampleobject.txt";
// Tentukan ID versi objek.
$options = array(
'versionId'=>'CAEQMxiBgICAof2D0BYiIDJhMGE3N2M1YTI1NDQzOGY5NTkyNTI3MGYyMzJm****'
);
$config = array(
"provider" => $provider,
"endpoint" => $endpoint,
"signatureVersion" => OssClient::OSS_SIGNATURE_VERSION_V4,
"region"=> "cn-hangzhou"
);
$ossClient = new OssClient($config);
// Setel tag objek.
$config = new TaggingConfig();
$config->addTag(new Tag("key1", "value1"));
$config->addTag(new Tag("key2", "value2"));
try {
$ossClient->putObjectTagging($bucket, $object, $config,$options);
printf("putObjectTagging Success" . "\n");
} catch (OssException $e) {
printf($e->getMessage() . "\n");
return;
}