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

Object Storage Service:ファイルの削除 (Swift SDK)

最終更新日:Nov 30, 2025

このトピックでは、OSS Swift ソフトウェア開発キット (SDK) を使用して、単一または複数のファイルを削除する方法について説明します。

警告

削除操作は慎重に行ってください。削除されたファイルは回復できません。

注意事項

  • このトピックのサンプルコードでは、中国 (杭州) リージョンの ID cn-hangzhou とそのパブリックエンドポイントを使用します。同じリージョン内の他の Alibaba Cloud プロダクトから OSS にアクセスする場合は、内部エンドポイントを使用してください。OSS がサポートするリージョンとエンドポイントの詳細については、「リージョンとエンドポイント」をご参照ください。

  • ファイルを削除するには、oss:DeleteObject 権限が必要です。詳細については、「RAM ユーザーへのカスタムアクセスポリシーの付与」をご参照ください。

サンプルコード

単一ファイルの削除

import AlibabaCloudOSS
import Foundation

@main
struct Main {
    static func main() async {
        do {
            // バケットが配置されているリージョン。例:中国 (杭州) の場合は cn-hangzhou。
            let region = "cn-hangzhou"
            // バケット名。
            let bucket = "yourBucketName"
            // オプション。OSS へのアクセスに使用するドメイン名。中国 (杭州) の場合は、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。
            let endpoint: String? = nil
            // 削除するオブジェクトの名前 (例: test.txt)。
            let key = "yourObjectName"

            // 認証情報プロバイダーを初期化して、環境変数から認証情報を読み込みます。
            let credentialsProvider = EnvironmentCredentialsProvider()

            // OSS クライアントを設定します。
            let config = Configuration.default()
                .withRegion(region)
                .withCredentialsProvider(credentialsProvider)
                
            // エンドポイントを設定します。
            if let endpoint = endpoint {
                config.withEndpoint(endpoint)
            }

            // OSS クライアントインスタンスを作成します。
            let client = Client(config)

            // オブジェクトを削除するリクエストを送信します。
            let result = try await client.deleteObject(
                DeleteObjectRequest(
                    bucket: bucket,
                    key: key
                )
            )
            print("result:\n\(result)")

        } catch {
            // エラーメッセージを出力して続行します。
            print("error: \(error)")
        }
    }
}

指定した複数ファイルの削除

import AlibabaCloudOSS
import Foundation

@main
struct Main {
    static func main() async {
        do {
            // バケットが配置されているリージョン。例:中国 (杭州) の場合は cn-hangzhou。
            let region = "cn-hangzhou"
            // バケット名。
            let bucket = "yourBucketName"
            // オプション。OSS へのアクセスに使用するドメイン名。中国 (杭州) の場合は、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。
            let endpoint: String? = nil
            // 削除するオブジェクトの名前をカンマで区切って指定します (例: object1.txt,object2.jpg)。
            let objects = "yourObjectName1,yourObjectName2"

            // 認証情報プロバイダーを初期化して、環境変数から OSS_ACCESS_KEY_ID と OSS_ACCESS_KEY_SECRET を読み込みます。
            let credentialsProvider = EnvironmentCredentialsProvider()

            // OSS クライアントを設定します。
            let config = Configuration.default()
                .withRegion(region)        // バケットが配置されているリージョンを設定します。
                .withCredentialsProvider(credentialsProvider)  // アクセス認証情報を設定します。
                
            // エンドポイントを設定します。
            if let endpoint = endpoint {
                config.withEndpoint(endpoint)
            }

            // OSS クライアントインスタンスを作成します。
            let client = Client(config)

            // オブジェクト名の文字列を解析して、DeleteObject 配列に変換します。
            var deleteObjects: [DeleteObject] = []
            for object in objects.components(separatedBy: ",") {
                deleteObjects.append(DeleteObject(key: object))
            }

            // 一括削除操作を実行します。
            let result = try await client.deleteMultipleObjects(
                DeleteMultipleObjectsRequest(
                    bucket: bucket,
                    objects: deleteObjects
                )
            )
            print("result:\n\(result)")

        } catch {
            // エラーメッセージを出力して続行します。
            print("error: \(error)")
        }
    }
}

よくある質問

Swift SDK を使用してファイルを削除した後、ファイルが削除されたことを確認するにはどうすればよいですか。

OSS Swift SDK の OSSClient deleteObject メソッドを使用して単一のファイルを削除する場合、例外がスローされなければ操作は成功です。ファイルが削除されたことを確認するには、OSSClientdoesObjectExist メソッドを呼び出します。このメソッドは、指定されたファイルが存在するかどうかを確認します。このメソッドが false を返した場合、ファイルは削除されています。詳細については、「ファイルが存在するかどうかの判断 (Swift SDK)」をご参照ください。

リファレンス

  • ファイルの削除に関する完全なサンプルコードについては、GitHub のサンプル delete_object および delete_mutiple_objects をご参照ください。

  • 単一ファイルを削除するための API 操作の詳細については、「DeleteObject」をご参照ください。

  • 複数ファイルを削除するための API 操作の詳細については、「DeleteMultipleObjects」をご参照ください。