我正面临着AWSS3的一个奇怪问题.
建立:
> AWS Mobile HUB
> Cognito
> DynamoDB
> S3
– > Cognito,Dynamo&甚至S3(通过认知用户数据)工作.
但是我现在尝试使用以下代码直接连接到AWS3:“
let transferManager = AWSS3TransferManager.default() let uploadRequest = AWSS3TransferManagerUploadRequest() uploadRequest?.bucket = "XXXXXXXXXXXX" uploadRequest?.key = "user-data/" + awsId! + "/primary_profile_picture.png" uploadRequest?.body = imgUrl as URL transferManager.upload(uploadRequest!).continueWith(executor: AWSExecutor.mainThread(),block: { (task:AWSTask<AnyObject>) -> Any? in if let error = task.error as? NSError { if error.domain == AWSS3TransferManagerErrorDomain,let code = AWSS3TransferManagerErrorType(rawValue: error.code) { switch code { case .cancelled,.paused: break default: print("Error uploading: \(uploadRequest?.key) Error: \(error)") } } else { print("Error uploading: \(uploadRequest?.key) Error: \(error)") } return nil } let uploadOutput = task.result print("Upload complete for: \(uploadRequest?.key)") return nil })
并得到错误:
AWSiOSSDK v2.5.1 [Debug] AWSInfo.m line:122 | -[AWSServiceInfo initWithInfoDictionary:checkRegion:] | Couldn't read the region configuration from Info.plist for the client. Please check your `Info.plist` if you are providing the SDK configuration values through `Info.plist`. 2017-02-20 19:29:21.748997 [2210:1152801] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException',reason: 'The service configuration is `nil`. You need to configure `Info.plist` or set `defaultServiceConfiguration` before using this method.'
我正在使用从AWS Mobiel HUB下载的plist配置,因此它有点惊讶它不起作用(正如所有其他组件那样).
任何想法可能是什么问题? plist实际上包含桶ID&地区.
解决方法
您的info.plist需要包含S3TransferManager.
所以,** AWS – > S3TransferManager – >默认 – >地区 – > … **
你可以找到一个here的例子