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