全部产品
Search
文档中心

Object Storage Service:Dapatkan tag objek (C++ SDK)

更新时间:Nov 30, 2025

Topik ini menjelaskan cara mengambil tag objek.

Catatan penggunaan

  • Pada topik ini, digunakan titik akhir publik wilayah China (Hangzhou). Jika Anda mengakses OSS dari layanan Alibaba Cloud lain yang berada di wilayah yang sama dengan OSS, gunakan titik akhir internal. Untuk informasi selengkapnya mengenai wilayah dan titik akhir OSS, lihat Wilayah dan titik akhir.

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

  • Untuk mengambil tag objek, Anda harus memiliki izin oss:GetObjectTagging. Untuk informasi selengkapnya, lihat Berikan izin kustom kepada RAM user.

Kode contoh

Kode berikut menunjukkan cara mengambil informasi tag objek:

#include <alibabacloud/oss/OssClient.h>
using namespace AlibabaCloud::OSS;
#include <iostream>
#include <sstream>


int main(void)
{
    /* Inisialisasi informasi akun OSS. */
            
   /* Tetapkan yourEndpoint ke titik akhir wilayah tempat bucket berada. Misalnya, untuk wilayah China (Hangzhou), tetapkan titik akhir ke https://oss-cn-hangzhou.aliyuncs.com. */
    std::string Endpoint = "yourEndpoint";
    /* Tetapkan yourRegion ke wilayah tempat bucket berada. Misalnya, untuk wilayah China (Hangzhou), tetapkan wilayah ke cn-hangzhou. */
    std::string Region = "yourRegion";
    /* Tentukan nama bucket. Misalnya, examplebucket. */
    std::string BucketName = "examplebucket";
    /* Tentukan path lengkap objek. Path lengkap tidak boleh mencakup nama bucket. Misalnya, exampledir/exampleobject.txt. */
    std::string ObjectName = "exampledir/exampleobject.txt";

    /* Inisialisasi sumber daya jaringan. */
    InitializeSdk();

    ClientConfiguration conf;
    conf.signatureVersion = SignatureVersionType::V4;
    /* Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah disetel. */
    auto credentialsProvider = std::make_shared<EnvironmentVariableCredentialsProvider>();
    OssClient client(Endpoint, credentialsProvider, conf);
    client.SetRegion(Region);
    std::shared_ptr<std::iostream> content = std::make_shared<std::stringstream>();
    *content << "test cpp sdk";
    PutObjectRequest request(BucketName, ObjectName, content);

    /* Unggah file. */
    auto outcome = client.PutObject(request);

    /* Tetapkan tag objek. */
    Tagging tagging;
    tagging.addTag(Tag("key1", "value1"));
    tagging.addTag(Tag("key2", "value2"));
    auto putTaggingOutcome = client.SetObjectTagging(SetObjectTaggingRequest(BucketName, ObjectName, tagging));

    /* Ambil tag objek. */
    auto getTaggingOutcome = client.GetObjectTagging(GetObjectTaggingRequest(BucketName, ObjectName));

    if (!getTaggingOutcome.isSuccess()) {
        /* Tangani pengecualian. */
        std::cout << "getTaggingOutcome gagal" <<
        ",kode:" << getTaggingOutcome.error().Code() <<
        ",pesan:" << getTaggingOutcome.error().Message() <<
        ",requestId:" << getTaggingOutcome.error().RequestId() << std::endl;
        return -1;
    }
    else {
        auto taglist = getTaggingOutcome.result().Tagging();
        for (const auto& tag : taglist.Tags())
        {
          std::cout <<"Ambil tag objek berhasil, Kunci:" 
          << tag.Key() << "; Nilai:" << tag.Value() << std::endl;
        }
    }

    /* Lepaskan sumber daya jaringan. */
    ShutdownSdk();
    return 0;
}

Referensi

  • Untuk kode contoh lengkap mengenai pengambilan tag objek, lihat contoh GitHub.

  • Untuk informasi selengkapnya mengenai operasi API untuk mengambil tag objek, lihat GetObjectTagging.