【发布时间】:2020-06-26 23:26:22
【问题描述】:
我有一个通过 Cognito 进行身份验证的应用程序,并且运行良好。 现在我需要重用身份验证和返回的令牌来将文件上传到 S3。我的理解是 AWSS3TransferUtility 是目前要走的路。只是不清楚需要做什么以及如何将令牌传递给 S3?谁能举个例子?仅使用可用的示例建议这样做:
let credentialsProvider =
CredentialsProvider(regionType:region, identityPoolId:poolId)
let serviceS3Configuration = AWSServiceConfiguration(region:region, credentialsProvider: credentialsProvider)
AWSServiceManager.default().defaultServiceConfiguration = serviceS3Configuration
导致“此身份池不支持未经身份验证的访问”,假设这是因为未使用令牌且未正确初始化 S3 AWS 服务。但是我没有看到设置的方法吗?我错过了什么?我可以看到一些示例建议将 credentialsProvider 的 logins 属性设置为 AWSCognitoLoginProviderKey 但此时似乎已过时。 任何和所有的帮助将不胜感激。
【问题讨论】:
-
完整的例子可以在这里找到:https://aws-amplify.github.io/docs/sdk/ios/storage
-
使用 AWSMobileClient 是否已经过时,并且不适用于 AWSCognito
-
您可以手动添加 TransferUtility(说明在上面的链接中)或切换到 AWSMobileClient(只需按照身份验证和存储的说明进行操作)。它并没有过时,并且与 Cognito 配合得很好。你可能会想到他们的 MobileHub,它已经过时了。
-
看来我可能误解了 AWSMobileClient 和 AWSCognito 之间的冲突,试图删除 AWSCognito 并使用 AWSMobileClient 看看是否可行。虽然在 cognito 登录后我仍然看不到令牌的令牌设置
-
没有完全返工我不确定是否有简单的切换方法。有没有办法使用 AWSCognito 并通过 AWSS3 返回会话令牌?
标签: swift amazon-s3 token amazon-cognito awss3transferutility