【发布时间】:2018-05-28 10:08:14
【问题描述】:
我正在尝试集成 S3 上传来上传视频文件,并尝试了开发人员身份验证的身份方法。一切都按照aws docs 所说的进行配置。
DeveloperAuthenticatedIdentityProvider 类:
class DeveloperAuthenticatedIdentityProvider : AWSCognitoCredentialsProviderHelper {
override func token() -> AWSTask<NSString> {
//return AWSTask //with token and will set identityId
}
然后
let devAuth = DeveloperAuthenticatedIdentityProvider(regionType: COGNITO_REGION, identityPoolId: COGNITO_POOL_ID, useEnhancedFlow: true, identityProviderManager:nil)
let credentialsProvider =
AWSCognitoCredentialsProvider(regionType: COGNITO_REGION, identityProvider:devAuth)
let configuration =
AWSServiceConfiguration(region: S3_REGION, credentialsProvider:credentialsProvider)
AWSServiceManager.default().defaultServiceConfiguration = configuration
配置这些东西后尝试使用 AWSS3TransferManager
上传let transferManager = AWSS3TransferManager.default()
let uploadingFileURL = URL(fileURLWithPath: "your/file/path/myTestFile.txt")
let uploadRequest = AWSS3TransferManagerUploadRequest()
uploadRequest.bucket = "myBucket"
uploadRequest.key = "myTestFile.txt"
uploadRequest.body = uploadingFileURL
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
})
每当我调用 Upload 方法时,它都会显示
[错误域=com.amazonaws.AWSCognitoIdentityErrorDomain 代码=8 "(null)" UserInfo={__type=NotAuthorizedException, message=此身份不支持未经身份验证的访问 池。}]
还有DeveloperAuthenticatedIdentityProvider没有被解雇
请帮忙。
【问题讨论】:
标签: ios swift amazon-s3 amazon-cognito