最近リリースされた新しいバージョンの AWS を使用しようとしています。古いバージョンは Android で動作していますが、Swift と新しいバージョンの AWS S3 は初めてで、この問題で数日間ブロックされています。The operation could not be completed. というエラー メッセージが表示され続けます。(ココア エラー 260)
ここに私のアプリデリゲートがあります
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
let credentialsProvider = AWSCognitoCredentialsProvider.credentialsWithRegionType(
AWSRegionType.USEast1,
accountId: cognitoAccountId,
identityPoolId: cognitoIdentityPoolId,
unauthRoleArn: cognitoUnauthRoleArn,
authRoleArn: cognitoAuthRoleArn)
let defaultServiceConfiguration = AWSServiceConfiguration(
region: AWSRegionType.USEast1,
credentialsProvider: credentialsProvider)
AWSServiceManager.defaultServiceManager().setDefaultServiceConfiguration(defaultServiceConfiguration)
AWSServiceManager.defaultServiceManager().setDefaultServiceConfiguration(defaultServiceConfiguration)
return true
}
バケットに画像をアップロードしようとしている場所のコード
let fileUrl = NSURL(string:imagePath!)
println(imagePath)
UIImageJPEGRepresentation(self.image, 1).writeToURL(fileUrl, atomically: true)
var indent:NSString = "closr"
var uploadRequest:AWSS3TransferManagerUploadRequest = AWSS3TransferManagerUploadRequest()
uploadRequest.bucket = "closr-bucket"
uploadRequest.key = "filename.jpg"
uploadRequest.contentType = "image/jpeg"
uploadRequest.body = fileUrl
uploadRequest.uploadProgress = { (bytesSent:Int64, totalBytesSent:Int64, totalBytesExpectedToSend:Int64) -> Void in
dispatch_sync(dispatch_get_main_queue(), {() -> Void in
println(totalBytesSent)
})
}
AWSS3TransferManager.defaultS3TransferManager().upload(uploadRequest).continueWithBlock { (task) -> AnyObject! in
if (task.error != nil) {
//failed
println("failed")
println(task.error.code)
println(task.error.localizedDescription)
} else {
//completed
println("completed")
}
return nil
}