【发布时间】:2022-07-18 17:05:55
【问题描述】:
我正在尝试将本地图像从我的 react 本机应用程序(我正在使用 expo)上传到 s3 存储桶,但似乎没有任何效果。 我正在使用 react-native-aws3 库,但 Promise.then 永远不会被调用。它也不会抛出任何错误。
这是代码:
const options = {
bucket: BUCKET_NAME,
region: REGION,
accessKey: AWS_USER_KEY,
secretKey: AWS_PRIVATE_KEY,
successActionStatus: 201
}
export async function uploadImage(imageUri, imageName, imageType) {
const file = {
uri: imageUri,
name: imageName,
type: "image/" + imageType
}
RNS3.put(file, options).then( (response) => {
console.log("done")
console.log(response)
console.log(response.status)
})
}
这是存储桶策略:
{
"Version": "2012-10-17",
"Id": "Policy1648118554991",
"Statement": [
{
"Sid": "Stmt1648118551643",
"Effect": "Allow",
"Principal": "*",
"Action": [
"s3:GetObject",
"s3:PutObject",
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::BUCKET_NAME",
"arn:aws:s3:::BUCKET_NAME/*"
]
}
]
}
这是 IAM 用户政策:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:PutObjectAcl"
],
"Resource": "arn:aws:s3:::BUCKET_NAME/*"
}
]
}
我尝试按照我能找到的所有教程进行操作,但似乎没有任何效果。我是否必须做其他事情,比如服务器端?还是政策有问题?
【问题讨论】:
标签: amazon-web-services react-native amazon-s3 expo