我有Android和iOS应用。我需要让他们下载和上传的资产在S3上,有时想将数据发送到移动,而无需使用Amazon Cognito因为它的成本大量的资金都有。我有秘密访问键,我想移动用户使用,而不必使用Amazon Cognito这些密钥。
那么,是否可以使用AWS中扩增没有亚马逊Cognito?
是的,这是可能的。你并不需要用户认证使用AWS中扩增。
这个答案只有解决了iOS上,但我猜,你就可以做Android上的类似的东西。只要将“协议”与“接口” :-)
为了使用完善你需要给SDK的AWSCredentialsProvider
。幸运的是,这仅仅是一个协议,而不是一个具体的类,它是简单的实现自己的:
// MyCredentialsProvider.swift
import AWSCore
import Foundation
class MyCredentialsProvider: NSObject, AWSCredentialsProvider {
func credentials() -> AWSTask<AWSCredentials> {
let credentials = AWSCredentials(accessKey: "AAAAAAAAAAAAAAAAAAA",
secretKey: "zzzzzzzzzzzzzzzzzzz",
sessionKey: nil,
expiration: nil)
return AWSTask(result: credentials)
}
func invalidateCachedTemporaryCredentials() {
// I'm not entirely sure what this method is supposed to do, but it
// seems to be okay to leave it as a no-op.
}
}
你可以使用你的类是这样的:
let provider: AWSCredentialsProvider = MyCredentialsProvider()
let serviceConfig = AWSServiceConfiguration(region: .USWest2,
credentialsProvider: provider)
AWSServiceManager.default().defaultServiceConfiguration = serviceConfig
// ...actually use AWS Amplify...
当然,你可能会想使您的凭据提供钩到自己的身份验证系统不知何故,但是这至少给你嗷嗷的想法通过自己的访问密钥和秘密密钥的SDK。