【发布时间】:2019-09-15 07:24:02
【问题描述】:
我正在开发一个无服务器 Reactjs 应用程序,并使用 AWS Amplify 来管理用户和存储用户上传的文件。我以私有模式将这些上传存储在 S3 上。默认情况下,文件夹名称是用户的 cognito 身份 ID。我想知道是否可以将文件夹名称更改为类似于用户名的名称。
谢谢。
【问题讨论】:
标签: reactjs aws-amplify
我正在开发一个无服务器 Reactjs 应用程序,并使用 AWS Amplify 来管理用户和存储用户上传的文件。我以私有模式将这些上传存储在 S3 上。默认情况下,文件夹名称是用户的 cognito 身份 ID。我想知道是否可以将文件夹名称更改为类似于用户名的名称。
谢谢。
【问题讨论】:
标签: reactjs aws-amplify
在私密模式下,您不能使用用户名或任何其他东西更改身份 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 => {})
【讨论】: