繁体   English   中英

iOS 应用程序:如何访问其他用户保存在 cognito identity id 文件夹下的 S3 对象

[英]iOS app: How to access S3 object saved under cognito identity id folder by another user

在我的 iOS 应用程序中,我已经完成了 AWS Cognito 用户身份验证。 经过身份验证的用户能够将图像上传到受保护的文件夹,即在 protected / {cognito user_identitiy_id} 下。 经过身份验证的用户只能访问保存在其 user_identity_id 文件夹下的对象。 一个用户如何访问其他用户的对象。 S3 文件说:-

公开:您的应用程序的所有用户都可以访问。 文件存储在 S3 存储桶中的 public/ 路径下。

受保护:对所有用户可读,但只能由创建用户写入。 文件存储在 protected/{user_identity_id}/ 下,其中 user_identity_id 对应于该用户的唯一 Amazon Cognito 身份 ID。

私人:仅供个人用户访问。 文件存储在 private/{user_identity_id}/ 下,其中 user_identity_id 对应于该用户的唯一 Amazon Cognito 身份 ID。

如果您使用的是 Amplify,则使用 Protected。 所有者具有写入权限,而其他人只能读取文件。

请帮助确保:

  1. 您的 S3 存储桶策略类似于“受保护”文件夹以限制用户访问: https : //docs.amazonaws.cn/en_us/IAM/latest/UserGuide/reference_policies_examples_s3_cognito-bucket.html

  2. 在 iOS 上,假设您使用的是 Amplify,请按照以下步骤操作: https : //aws-amplify.github.io/docs/ios/storage 请记住,在使用 Storage API 之前,您必须先进行身份验证并交换到 Credential。

另一个想要读取文件的用户可以指定创建它的用户:

let options = StorageDownloadDataRequest.Options(accessLevel:.protected, targetIdentityId: "OtherUserId")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM