Skip to content

Instantly share code, notes, and snippets.

@quangtqag
Created May 26, 2016 07:04
Show Gist options
  • Save quangtqag/b57eecef770a1fec373f9b26086e3146 to your computer and use it in GitHub Desktop.
Save quangtqag/b57eecef770a1fec373f9b26086e3146 to your computer and use it in GitHub Desktop.
class AWSS3Util: NSObject {
class func uploadFileAtURL(fileURL: NSURL,
fileName: String,
progessCallBack: AWSNetworkingUploadProgressBlock?,
responseCallBack: (error: NSError?) -> Void ) {
let uploadRequest = AWSS3TransferManagerUploadRequest()
uploadRequest.body = fileURL
uploadRequest.key = fileName
uploadRequest.bucket = Setting.BUCKET
uploadRequest.ACL = AWSS3ObjectCannedACL.PublicRead
if progessCallBack != nil {
uploadRequest.uploadProgress = progessCallBack
}
let transferManager = AWSS3TransferManager.defaultS3TransferManager()
transferManager.upload(uploadRequest).continueWithBlock { (task) -> AnyObject? in
if let error = task.error {
print("Error occurred: \(error)")
dispatch_async(dispatch_get_main_queue(), {
responseCallBack(error: error)
})
return nil
}
dispatch_async(dispatch_get_main_queue(), {
responseCallBack(error: nil)
})
return nil
}
}
class func downloadFileWithFileName(fileName: String,
downloadedLocationURL: NSURL,
progessCallBack: AWSNetworkingUploadProgressBlock?,
responseCallBack: (error: NSError?) -> Void ) {
let downloadRequest = AWSS3TransferManagerDownloadRequest()
downloadRequest.key = fileName
downloadRequest.bucket = Setting.BUCKET
downloadRequest.downloadingFileURL = downloadedLocationURL
if progessCallBack != nil {
downloadRequest.uploadProgress = progessCallBack
}
let transferManager = AWSS3TransferManager.defaultS3TransferManager()
transferManager.download(downloadRequest).continueWithBlock { (task) -> AnyObject? in
if let error = task.error {
print("Error occurred: \(error)")
dispatch_async(dispatch_get_main_queue(), {
responseCallBack(error: error)
})
return nil
}
dispatch_async(dispatch_get_main_queue(), {
responseCallBack(error: nil)
})
return nil
}
}
class func deleteFileWithFileName(fileName: String, callback: (error: NSError?) -> Void) {
let deleteRequest = AWSS3DeleteObjectRequest()
deleteRequest.bucket = Setting.BUCKET
deleteRequest.key = fileName
let s3 = AWSS3.defaultS3()
s3.deleteObject(
deleteRequest) { (deleteObjectOutput, error) in
callback(error: error)
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment