我正在研究无服务器的Reactjs应用程序,并使用AWS Amplify来管理用户和存储用户上传的文件。我将这些上传内容以私有模式存储在S3上。默认情况下,文件夹名称是用户的cognito身份标识。我想知道是否可以将文件夹名称更改为类似用户名。
谢谢。
在私有模式下,您无法使用用户名或任何其他内容更改身份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 => {})