Layanan Penyimpanan Objek (OSS) memungkinkan Anda mengonfigurasi tag objek untuk mengklasifikasikan objek. Topik ini menjelaskan cara menambahkan, menanyakan, dan menghapus tag objek.
Catatan penggunaan
Sebelum menjalankan contoh kode dalam topik ini, Anda harus membuat instans OSSClient menggunakan metode seperti nama domain kustom atau Security Token Service (STS). Untuk informasi selengkapnya, lihat Initialization.
Tambahkan tag ke objek
Tambahkan tag ke objek saat Anda mengunggah objek
Berikut adalah contoh kode untuk menambahkan tag saat mengunggah objek:
OSSPutObjectRequest * put = [OSSPutObjectRequest new];
// Tentukan nama bucket. Contoh: examplebucket.
put.bucketName = @"examplebucket";
// Tentukan jalur lengkap objek. Contoh: exampledir/exampleobject.txt. Jangan sertakan nama bucket dalam jalur lengkap.
put.objectKey = @"exampledir/exampleobject.txt";
put.uploadingFileURL = [NSURL fileURLWithPath:@"<filePath>"];
// Tambahkan tag. Sebagai contoh, atur kunci tag menjadi owner dan nilai tag menjadi John.
NSDictionary *tagging = @{@"owner": @"John"};
put.objectMeta = @{@"x-oss-tagging": [OSSUtil populateQueryStringFromParameter:tagging]};
// (Opsional) Konfigurasikan indikator kemajuan unggahan.
put.uploadProgress = ^(int64_t bytesSent, int64_t totalByteSent, int64_t totalBytesExpectedToSend) {
// Tentukan jumlah byte yang sedang diunggah, jumlah total byte yang diunggah, dan jumlah total byte yang ingin Anda unggah.
NSLog(@"%lld, %lld, %lld", bytesSent, totalByteSent, totalBytesExpectedToSend);
};
OSSTask * putTask = [client putObject:put];
[putTask continueWithBlock:^id(OSSTask *task) {
if (!task.error) {
NSLog(@"unggah objek berhasil!");
} else {
NSLog(@"unggah objek gagal, kesalahan: %@" , task.error);
}
return nil;
}];
// [putTask waitUntilFinished];
// [put cancel];Tambahkan tag ke atau ubah tag objek yang sudah ada
Berikut adalah contoh kode untuk menambahkan atau mengubah tag pada objek yang sudah ada:
OSSPutObjectTaggingRequest *putTaggingRequest = [OSSPutObjectTaggingRequest new];
// Tentukan nama bucket. Contoh: examplebucket.
putTaggingRequest.bucketName = @"examplebucket";
// Tentukan jalur lengkap objek. Contoh: exampledir/exampleobject.txt. Jangan sertakan nama bucket dalam jalur lengkap.
putTaggingRequest.objectKey = @"exampledir/exampleobject.txt";
// Buat dan tambahkan tag.
NSDictionary *tags = @{@"key1":@"value1", @"key2":@"value2"};
putTaggingRequest.tags = tags;
OSSTask * putTask= [client putObjectTagging:putTaggingRequest];
[putTask continueWithBlock:^id _Nullable(OSSTask * _Nonnull task) {
if (task.error) {
NSLog(@"kesalahan: %@", task.error);
} else {
NSLog(@"penambahan tagging berhasil");
}
return nil;
}];
// [putTask waitUntilFinished];Tambahkan tag ke objek saat Anda menyalin objek
Berikut adalah contoh kode untuk menambahkan tag saat menyalin objek:
OSSCopyObjectRequest * copy = [OSSCopyObjectRequest new];
// Tentukan nama bucket sumber.
copy.sourceBucketName = @"sourceBucketName";
// Tentukan kunci objek sumber.
copy.sourceObjectKey = @"sourceObjectKey";
// Tentukan nama bucket tujuan.
copy.bucketName = @"bucketName";
// Tentukan nama objek tujuan.
copy.objectKey = @"objectKey";
// Tambahkan tag ke objek.
NSDictionary *tagging = @{@"owner": @"John"};
copy.objectMeta = @{
@"x-oss-tagging": [OSSUtil populateQueryStringFromParameter:tagging],
@"x-oss-tagging-directive": @"Replace"
};
OSSTask * task = [client copyObject:copy];
[task continueWithBlock:^id(OSSTask *task) {
if (task.error) {
NSLog(@"kesalahan: %@", task.error);
} else {
NSLog(@"salin objek berhasil");
}
return nil;
}];
// [task waitUntilFinished];Tambahkan tag ke tautan simbolik
Berikut adalah contoh kode untuk menambahkan tag ke tautan simbolik:
OSSPutSymlinkRequest * putSymlinkRequest = [OSSPutSymlinkRequest new];
// Tentukan nama bucket.
putSymlinkRequest.bucketName = @"examplebucket";
// Tentukan nama tautan simbolik.
putSymlinkRequest.objectKey = @"examplesymlink";
// Tentukan jalur lengkap objek yang dituju oleh tautan simbolik. Jangan sertakan nama bucket dalam jalur lengkap.
putSymlinkRequest.targetObjectName = @"exampleobject.txt";
// Tambahkan tag ke objek.
NSDictionary *tagging = @{@"owner": @"John"};
putSymlinkRequest.objectMeta = @{
@"x-oss-tagging": [OSSUtil populateQueryStringFromParameter:tagging],
};
OSSTask * putSymlinktask = [client putSymlink:putSymlinkRequest];
[putSymlinktask continueWithBlock:^id(OSSTask *task) {
if (!task.error) {
NSLog(@"tautan simbolik berhasil dibuat");
} else {
NSLog(@"tautan simbolik gagal dibuat, kesalahan: %@", task.error);
}
return nil;
}];
// [putSymlinktask waitUntilFinished];Kueri tag objek
Berikut adalah contoh kode untuk menanyakan tag dari objek:
OSSGetObjectTaggingRequest *getTaggingRequest = [OSSGetObjectTaggingRequest new];
// Tentukan nama bucket.
getTaggingRequest.bucketName = @"examplebucket";
// Tentukan nama objek.
getTaggingRequest.objectKey = @"exampledir/exampleobject.txt";
OSSTask * getTask = [client getObjectTagging:getTaggingRequest];
// Kueri tag dari objek.
[getTask continueWithBlock:^id _Nullable(OSSTask * _Nonnull task) {
if (!task.error) {
OSSGetObjectTaggingResult *result = task.result;
for (NSString *key in [result.tags allKeys]) {
NSLog(@"tagging %@: %@", key, result.tags[key]);
}
} else {
NSLog(@"mengambil tagging objek gagal! kesalahan: %@", task.error);
}
return nil;
}];
// [getTask waitUntilFinished];Hapus tag objek
Berikut adalah contoh kode untuk menghapus tag dari objek:
OSSDeleteObjectTaggingRequest *deleteTaggingRequest = [OSSDeleteObjectTaggingRequest new];
// Tentukan nama bucket.
deleteTaggingRequest.bucketName = @"examplebucket";
// Tentukan nama objek.
deleteTaggingRequest.objectKey = @"exampledir/exampleobject.txt";
OSSTask *deleteTask = [client deleteObjectTagging:deleteTaggingRequest];
// Hapus tag yang ditambahkan ke objek.
[deleteTask continueWithBlock:^id _Nullable(OSSTask * _Nonnull task) {
if (!task.error) {
NSLog(@"penghapusan tagging objek berhasil");
} else {
NSLog(@"penghapusan tagging objek gagal! kesalahan: %@", task.error);
}
return nil;
}];
// [deleteTask waitUntilFinished];Referensi
Untuk informasi lebih lanjut tentang operasi API untuk menambahkan tag ke objek, lihat PutObjectTagging.
Untuk informasi lebih lanjut tentang operasi API untuk menanyakan tag dari objek, lihat GetObjectTagging.
Untuk informasi lebih lanjut tentang operasi API untuk menghapus tag dari objek, lihat DeleteObjectTagging.