当前位置: 首页 > 知识库问答 >
问题:

如何使用AWS移动集线器创建的s3桶从Swift将文件上传到受保护的s3桶中?

闾丘博超
2023-03-14

我有一个AWS mobile hub项目,正在尝试将文件上传到自动生成的bucket的受保护文件夹中。

  • 私人
  • 受保护
  • 公共
  • 上传

我正在使用AWSS3TransferUtility在用户通过身份验证后上载文件。创建时,我查看了文件夹中的文档和网站。他们设置了权限,可以在不同的文件夹中以不同的方式保护数据。我可以毫无问题地将文件上传到uploads文件夹。然后我尝试上传到私有和受保护的文件夹,并从API调用中收到授权的403。我通过IAM查看了bucket上的权限。

BucketName|字符串like|appname-userfiles-mobile ehub-1213213213,ObjectPath|字符串like|Private/${cognito-identity.amazonaws.com: sub}/*

因此,我推导出上传的密钥必须包含密钥中的身份标识。我如何获得当前用户的身份标识,使其匹配并允许我将文件上传到S3,同时确保其数据保护完整性?

共有1个答案

阙辰龙
2023-03-14

我有AWSIdfyManager拉用户id。

// start of upload code
let transferUtility = AWSS3TransferUtility.default()
let user = AWSIdentityManager.default().identityId
let newKey = "protected/"+user!+"/"+fileURL.lastPathComponent

 transferUtility.uploadData(
     data,
     bucket: "appbucket-name",
     key: newKey,
      contentType: "text/plain",
 ...
 //rest of code from the docs
 类似资料:
  • 我正在使用Amazon s3,但在这里我面临两个问题 1.当我提交表单时,我不能直接将文件上传到亚马逊服务器。我的意思是我必须将图像上传到我的PHP服务器上的,然后从那里检索并将它们上传到。当我们单击提交时,有没有办法直接将图像上传到? 2.如果我在中传递,那么我可以访问或查看文件,但如果我将其公开,每个人都可以查看文件。但我需要保护所有文件并仅向经过身份验证的用户查看。有人能建议我如何解决这个问

  • 我有一个只能使用签名url访问的S3存储桶。到目前为止,我使用GeneratePresignedUrlRequest(Java)生成签名url。现在我想通过CloudFront访问我的存储桶。问题是我如何在这种情况下生成签名url?

  • 有没有一种方法可以将文件列表从一个S3存储桶复制到另一个存储桶?两个S3存储桶都在同一个AWS帐户中。我可以使用aws cli命令一次复制一个文件: 然而,我有1000份文件要复制。我不想复制源存储桶中的所有文件,因此无法使用sync命令。有没有一种方法可以用需要复制的文件名列表来调用一个文件,从而自动化这个过程?

  • 问题内容: 我想使用python复制s3存储桶中的文件。 例如:我的存储桶名称=测试。在存储桶中,我有2个文件夹名称为“ dump”和“ input”。现在,我想使用python将文件从本地目录复制到S3“转储”文件夹…有人可以帮助我吗? 问题答案: 尝试这个… [更新]我不是pythonist,所以感谢您对import语句的注意。另外,我不建议将凭证放在您自己的源代码中。如果您在AWS内部运行此

  • 我们有一些terraform配置,我们使用s3作为后端。我们有多个AWS帐户,每个环境一个。 在所有的环境和跨多个地区的情况下,我们有不同的选择 我不确定在不必在旧状态桶上运行destroy并在新状态桶上应用的情况下,实现这一点的最佳方法是什么。 我能想到的几个选项如下,但我不确定它们是否正确。 重命名s3桶:我明白这是不可能的(还是?) 移动s3桶:重命名的解决方案如这里所述。不确定这种方法是否

  • 我用的是fs。readFile读取大约700KB的本地mp4文件,AWS SDK将文件加载到我的S3存储桶中。这个过程是可行的,但文件已损坏,可能是因为S3上生成的文件大小仅为500KB左右而被截断。 我使用的代码可以很好地处理图像。只是不适用于mp4文件。这是我的代码: 我已尝试从params对象中省略ContentEncoding和/或ContentType属性。 编辑: 因此,当我conso