els*_*udo 3 amazon-s3 ios aws-sdk
所有aws-sdk-ios示例都使用异步AWSS3TransferManager上传数据.
例如:https://github.com/awslabs/aws-sdk-ios-samples/blob/master/S3TransferManager-Sample/Swift/S3TransferManagerSampleSwift/UploadViewController.swift#L81
现在通常,这很好,但是NSOperation由于其他原因,我的工作已经在子类中了,所以我想同步上传到S3以保持简单(否则,我需要实现异步NSOperation,这有很多更多样板......)
有人知道怎么做吗?
如果有人好奇,我想出来:
let credentialsProvider = AWSCognitoCredentialsProvider(regionType: AWSRegionType.USEast1,
identityPoolId: AwsCognitoIdentityPoolId)
let configuration = AWSServiceConfiguration(region: AWSRegionType.USEast1,
credentialsProvider: credentialsProvider)
AWSServiceManager.defaultServiceManager().defaultServiceConfiguration = configuration
let S3Client = AWSS3.defaultS3()
let putObjectRequest = AWSS3PutObjectRequest()
putObjectRequest.bucket = AwsBucketName
putObjectRequest.key = key
putObjectRequest.body = logFilePathURL
do {
let fileAttributes = try self.fileManager.attributesOfItemAtPath(logFilePathURL.path!)
let fileSizeNumber = fileAttributes[NSFileSize] as! NSNumber
putObjectRequest.contentLength = NSNumber(longLong: fileSizeNumber.longLongValue)
} catch _ as NSError {
// TODO handle error
}
S3Client.putObject(putObjectRequest).continueWithBlock { (task: AWSTask) -> AnyObject? in
return nil
}.waitUntilFinished()
Run Code Online (Sandbox Code Playgroud)
...是啊.我无法在任何地方找到一个例子,所以我必须阅读源代码并解决问题.至于那个aws-sdk-ios图书馆,谈论过度工程......需要一段时间才能通过所有这些间接层来弄明白.
无论如何,在那个我return nil处理错误的最后一块,等等.
| 归档时间: |
|
| 查看次数: |
950 次 |
| 最近记录: |