全部产品
Search
文档中心

Object Storage Service:Ubah nama objek (iOS SDK)

更新时间:Nov 30, 2025

OSS tidak mendukung pengubahan nama objek secara langsung. Untuk mengganti nama objek dalam bucket yang sama, panggil operasi CopyObject untuk menyalin objek sumber ke objek tujuan, lalu panggil operasi DeleteObject untuk menghapus objek sumber.

Catatan penggunaan

  • Sebelum menjalankan kode contoh dalam topik ini, buat instans OSSClient menggunakan nama domain kustom atau Security Token Service (STS). Untuk informasi selengkapnya, lihat Inisialisasi (iOS SDK).

    Catatan

    Wilayah bucket ditentukan oleh wilayah titik akhir yang ditetapkan dalam konfigurasi inisialisasi.

Kode contoh

Kode berikut menunjukkan cara mengubah nama objek dari srcobject.txt menjadi destobject.txt di bucket examplebucket.

// Tentukan nama bucket.
NSString *bucketName = @"examplebucket";
// Tentukan path lengkap objek sumber. Jangan sertakan nama bucket. Contohnya, srcobject.txt.
NSString *sourceObjectKey = @"sourceObjectKey";
// Tentukan path lengkap objek tujuan. Jangan sertakan nama bucket. Contohnya, destobject.txt.
NSString *objectKey = @"destobject.txt";
[[[OSSTask taskWithResult:nil] continueWithBlock:^id _Nullable(OSSTask * _Nonnull task) {
    // Salin objek srcobject.txt ke destobject.txt dalam bucket yang sama.
    OSSCopyObjectRequest *copyRequest = [OSSCopyObjectRequest new];
    copyRequest.bucketName = bucketName;
    copyRequest.sourceBucketName = bucketName;
    copyRequest.sourceObjectKey = sourceObjectKey;
    copyRequest.objectKey = objectKey;
    OSSTask *copyTask = [client copyObject:copyRequest];
    [copyTask waitUntilFinished];
    if (copyTask.error) {
        return copyTask;
    }
    // Hapus objek srcobject.txt.
    OSSDeleteObjectRequest *deleteObject = [OSSDeleteObjectRequest new];
    deleteObject.bucketName = bucketName;
    deleteObject.objectKey = sourceObjectKey;
    OSSTask *deleteTask = [client deleteObject:deleteObject];
    [deleteTask waitUntilFinished];
    if (deleteTask.error) {
        return deleteTask;
    }
    return nil;
}] continueWithBlock:^id _Nullable(OSSTask * _Nonnull task) {
    if (task.error) {
        NSLog(@"rename fail! error: %@", task.error);
    } else {
        NSLog(@"rename success!");
    }
    return nil;
}];
Catatan

OSS tidak mendukung pengubahan nama folder secara langsung. Untuk mengganti nama folder, terapkan metode yang sama untuk mengganti nama setiap subdirektori dan objek di dalam folder tersebut.

Referensi

Untuk informasi selengkapnya mengenai operasi API yang digunakan untuk mengganti nama file, lihat CopyObject dan DeleteObject.