LoginSignup
2
2

More than 5 years have passed since last update.

AWS S3の複数のファイルをプログラムから1回のリクエストで削除(iOS SDK, Swift)

Last updated at Posted at 2016-05-18

AWSのSDKを使用してiphoneからAWS S3上のファイルを複数一度に削除する方法が少し分かりにくかったのでメモ。

    // S3のデータを削除する
    static func removeFileS3(removeFileList: [String], resultHandler:(isOK:Bool)->Void) -> Void {

        let s3Client = AWSS3.defaultS3()

        let deleteRequest = AWSS3DeleteObjectsRequest()

        // 削除対象の情報の入れ物
        let removeObjects = AWSS3Remove()

        var removeList = [AWSS3ObjectIdentifier]()

        for removeFile in removeFileList {

            if removeFile != "" {
                // 削除情報を保持
                let objectIdentifier = AWSS3ObjectIdentifier()

                // ファイル名をkeyに入れる
                objectIdentifier.key = removeFile

                removeList.append(objectIdentifier)
            }
        }

        removeObjects.objects = removeList
        deleteRequest.bucket = /* Bucket name */
        deleteRequest.remove = removeObjects

        // 削除処理の実行
        s3Client.deleteObjects(deleteRequest).continueWithBlock { (deleteResult) -> AnyObject? in

            if deleteResult.error == nil && deleteResult.exception == nil && !deleteResult.faulted {
                resultHandler(isOK: true)
                return true
            } else {
                print(deleteResult.error?.description ?? "nil")
                print(deleteResult.exception?.description ?? "nil")
                resultHandler(isOK: false)
                return false
            }
        }
    }

参照
公式ドキュメント:http://docs.aws.amazon.com/AWSiOSSDK/latest/Classes/AWSS3DeleteObjectsRequest.html#//api/name/requestPayer

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2