プロジェクトがswift
あり、Amazon Web Services を使用しています。
バケットに画像をアップロードする機能がありますS3
.Swift 2.2ではうまく機能し、コードは次のとおりです:
let credentialsProvider = AWSCognitoCredentialsProvider(regionType:CognitoRegionType,
identityPoolId:CognitoIdentityPoolId)
let configuration = AWSServiceConfiguration(region:CognitoRegionType, credentialsProvider:credentialsProvider)
AWSServiceManager.defaultServiceManager().defaultServiceConfiguration = configuration
let uploadRequest = AWSS3TransferManagerUploadRequest()
uploadRequest.body = NSURL(string: "file://"+pathToFile)
uploadRequest.key = NSProcessInfo.processInfo().globallyUniqueString + "." + ext
uploadRequest.bucket = S3BucketName
uploadRequest.contentType = contentType + ext
let transferManager = AWSS3TransferManager.defaultS3TransferManager()
transferManager.upload(uploadRequest).continueWithBlock { (task) -> AnyObject! in
if (task.completed) {
...
今、Swift 3にアップグレードした後、私は持っています:
let credentialsProvider = AWSCognitoCredentialsProvider(regionType:CognitoRegionType,
identityPoolId:CognitoIdentityPoolId)
let configuration = AWSServiceConfiguration(region:CognitoRegionType, credentialsProvider:credentialsProvider)
AWSServiceManager.default().defaultServiceConfiguration = configuration
let uploadRequest = AWSS3TransferManagerUploadRequest()
uploadRequest?.body = URL(string: "file://"+pathToFile)
uploadRequest?.key = ProcessInfo.processInfo.globallyUniqueString + "." + ext
uploadRequest?.bucket = S3BucketName
uploadRequest?.contentType = contentType + ext
let transferManager = AWSS3TransferManager.default()
transferManager?.upload(uploadRequest).continueWithBlock { (task) -> AnyObject! in
if (task.isCompleted) {
最後のステートメントでtransferManager?.upload(uploadRequest).continueWithBlock
、次のエラーがスローされます
'continueWithBlock' has been renamed to 'continue(_:)'
だから私は彼らのアドバイスに従い、それを次のように変更します:
transferManager?.upload(uploadRequest).continue {
しかし、それは私にエラーをスローします:
Ambigous use of continue
利用可能な方法は次のとおりです。
しかし、この場合、どちらを使用できるかわかりません。それを手伝ってもらえますか?