若在使用AWS Amplify上传图片后遇到无法显示的问题,通常是由于缺乏或错误的配置而造成的。为了解决此问题,可以通过以下步骤进行检查和配置:
步骤1:检查BUCKET_NAME
在您的AWS Amplify Console中,转到您的应用程序并选择'Backend环境”。在这里可以看到'BUCKET_NAME”。确保该名称与您在Amazon S3上创建的存储桶的名称匹配。
步骤2:检查aws-exports.js
在您的AWS Amplify项目中,找到aws-exports.js文件并打开。确保以下内容正确设置:
const awsmobile = {
"aws_project_region": "YOUR_PROJECT_REGION",
"aws_cognito_identity_pool_id": "ID",
"aws_cognito_region": "YOUR_REGION",
"aws_user_pools_id": "USER_POOL_ID",
"aws_user_pools_web_client_id": "WEB_CLIENT_ID",
"oauth": {
"domain": "YOUR_OAUTH_DOMAIN",
"scope": [
"email",
"openid"
],
"redirectSignIn": "YOUR_SIGN_IN_URL",
"redirectSignOut": "YOUR_SIGN_OUT_URL",
"responseType": "code"
},
"federationTarget": "COGNITO_USER_POOLS",
"aws_cloud_logic_custom": [
{
"name": "YOUR_LAMBDA_FUNCTION_NAME",
"endpoint": "YOUR_ENDPOINT",
"region": "YOUR_REGION"
}
]
};
export default awsmobile;
步骤3:检查S3策略
在AWS S3中找到您的存储桶并打开'权限”选项卡。在这里,确保以下策略已正确配置:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadForGetBucketObjects",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::YOUR_BUCKET_NAME/*"
}
]
}
请注意替换'YOUR_BUCKET_NAME”为您在AWS Amplify控制台和Amazon S3上的实际存储桶名称。
步骤4:检查属性
确保要从S3中获取的图像具有'公共读取”属性。在AWS S3中找