在AWS Amplify Storage中更改私有文件夹名称

时间:2019-04-25 19:31:20

标签: reactjs aws-amplify

我正在研究无服务器的Reactjs应用程序,并使用AWS Amplify管理用户和存储用户上传的文件。我将这些上传内容以私有模式存储在S3上。默认情况下,文件夹名称是用户的认知身份ID。我想知道是否可以将文件夹名称更改为类似于用户名的名称。

谢谢。

1 个答案:

答案 0 :(得分:0)

在私有模式下,您无法使用用户名或其他任何方式更改身份ID。

您可以获取凭证并将其传递给AWS.S3构造函数,然后将文件上传到所需的文件夹中,但是您不能基于自己的自定义用户名基本路径来应用策略/限制。

import { AWS } from "@aws-amplify/core/lib/Facet";

const credentials = await Auth.currentCredentials();
const s3 = new AWS.S3({
  ...credentials,
  apiVersion: '2006-03-01',
  params: { Bucket: <your bucket name> }
});
      
      
s3.upload({
    Key: <your key>,
    Body: file,
    progressCallback: prgressCallback // if any
  })
  .promise()
  .then(res => {})
  .catch(err => {})