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