すべてのプロダクト
Search
ドキュメントセンター

Object Storage Service:オブジェクトの名前変更 (iOS SDK)

最終更新日:Nov 30, 2025

OSS は、オブジェクトの直接的な名前変更をサポートしていません。 同じバケット内のオブジェクトの名前を変更するには、CopyObject 操作を呼び出してソースオブジェクトを宛先オブジェクトにコピーします。 次に、DeleteObject 操作を呼び出してソースオブジェクトを削除します。

注意事項

  • このトピックのサンプルコードを実行する前に、カスタムドメイン名または Security Token Service (STS) を使用して OSSClient インスタンスを作成する必要があります。 詳細については、「初期化 (iOS SDK)」をご参照ください。

    説明

    バケットのリージョンは、初期化設定で指定されたエンドポイントのリージョンによって決まります。

サンプルコード

次のコードは、examplebucket バケット内のオブジェクトの名前を srcobject.txt から destobject.txt に変更する方法を示しています。

// バケット名を指定します。
NSString *bucketName = @"examplebucket";
// ソースオブジェクトの完全なパスを指定します。 バケット名は含めないでください。 例:srcobject.txt。
NSString *sourceObjectKey = @"sourceObjectKey";
// 宛先オブジェクトの完全なパスを指定します。 バケット名は含めないでください。 例:destobject.txt。
NSString *objectKey = @"destobject.txt";
[[[OSSTask taskWithResult:nil] continueWithBlock:^id _Nullable(OSSTask * _Nonnull task) {
    // srcobject.txt オブジェクトを同じバケット内の destobject.txt にコピーします。
    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;
    }
    // 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;
}];
説明

OSS は、フォルダーの直接的な名前変更をサポートしていません。 フォルダーの名前を変更するには、同じメソッドを適用して、フォルダー内の各サブディレクトリとオブジェクトの名前を変更します。

関連ドキュメント

ファイルの名前変更に使用される API 操作の詳細については、「CopyObject」および「DeleteObject」をご参照ください。