Todos os produtos
Search
Central de documentação

Object Storage Service:Rename objects (iOS SDK)

Última atualização: Sep 22, 2026

O OSS não oferece suporte à renomeação direta de objetos. Para renomear um objeto, execute uma operação de cópia seguida de exclusão: chame CopyObject e crie um novo objeto com o nome desejado; depois, chame DeleteObject e exclua o objeto source.

Observações

  • crie uma instância do OSSClient com um nome de domínio personalizado ou com o Security Token Service (STS) e, em seguida, execute o código de exemplo. Para mais informações, consulte Initialization (iOS SDK).

    Nota

    especifique a região do endpoint na configuração de inicialização para definir a região do bucket.

Código de exemplo

O código de exemplo a seguir renomeia o objeto srcobject.txt para destobject.txt no bucket examplebucket.

// Specify the bucket name.
NSString *bucketName = @"examplebucket";
// Specify the full path of the source object. Do not include the bucket name. For example, srcobject.txt.
NSString *sourceObjectKey = @"sourceObjectKey";
// Specify the full path of the destination object. Do not include the bucket name. For example, destobject.txt.
NSString *objectKey = @"destobject.txt";
[[[OSSTask taskWithResult:nil] continueWithBlock:^id _Nullable(OSSTask * _Nonnull task) {
    // Copy the srcobject.txt object to destobject.txt in the same bucket.
    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;
    }
    // Delete the srcobject.txt object.
    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;
}];
Nota

O OSS não oferece suporte à renomeação direta de pastas. Para renomear uma pasta, aplique o mesmo método a cada subdiretório e objeto dentro dela.

Referências

Para mais informações sobre as operações de API para renomear um objeto, consulte CopyObject e DeleteObject.