首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS -同步上传到AWS S3

iOS -同步上传到AWS S3
EN

Stack Overflow用户
提问于 2016-02-03 19:52:48
回答 1查看 1.3K关注 0票数 3

所有aws示例都使用AWSS3TransferManager异步上传数据。

例如:https://github.com/awslabs/aws-sdk-ios-samples/blob/master/S3TransferManager-Sample/Swift/S3TransferManagerSampleSwift/UploadViewController.swift#L81

现在,这通常是好的,但是由于其他原因,我的工作已经在NSOperation子类中了,所以我希望同步上传到S3以保持简单(否则,我需要实现一个异步NSOperation,并且它有更多的样板.)

有人知道怎么做吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-03 21:36:41

如果有人好奇,我想出来了:

代码语言:javascript
复制
    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()

...yeah。我无法在任何地方找到一个例子,所以我不得不阅读源代码并找出答案。至于aws-sdk-ios图书馆,谈谈过度工程.花了一段时间才从所有这些间接的层次中找出答案。

无论如何,在最后一个块中,我return nil是处理错误的地方,等等。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35186402

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档