为什么要让AccessDenied将Gatsby部署到S3?

Rai*_*l24 6 amazon-s3 gatsby

我正在按照指南使用Gatsby部署到S3存储桶。

如果我跑aws s3 ls mybucketname.com

我得到了我上传的单个文件: 2019-02-15 15:53:58 477 favicon-16x16.png

但是,如果我跑步npm run deploy

我收到此错误:

> gatsby-plugin-s3 deploy

? Failed.
AccessDenied: Access Denied
Run Code Online (Sandbox Code Playgroud)

这是我中的相关代码gatsby-config.js

plugins: [
{
     resolve: `gatsby-plugin-s3`,
     options: {
         bucketName: 'mybucketname.com'
     },
 },
Run Code Online (Sandbox Code Playgroud)

这是我在AWS中创建的用户所附的IAM策略:

{
"Version": "2012-10-17",
"Statement": [
    {
        "Sid": "ListObjectsInBucket",
        "Effect": "Allow",
        "Action": [
            "s3:ListBucket"
        ],
        "Resource": [
            "arn:aws:s3:::mybucketname.com"
        ]
    },
    {
        "Sid": "AllObjectActions",
        "Effect": "Allow",
        "Action": "s3:*Object",
        "Resource": [
            "arn:aws:s3:::mybucketname.com/*"
        ]
    }
]
}
Run Code Online (Sandbox Code Playgroud)

还有其他可以确定该错误来源的东西吗?

ksa*_*sav 6

尝试acl: null在gatsby-plugin-s3选项中进行设置,然后运行gatsby build

plugins: [
{
  resolve: `gatsby-plugin-s3`,
  options: {
    bucketName: 'mybucketname.com',
    acl: null
  }
}
Run Code Online (Sandbox Code Playgroud)

  • 之后,您需要重建gatsby。盖茨比建立 (3认同)
  • 这也修复了 ember-cli-deploy 到 s3 的“访问被拒绝”错误。不错的发现。 (2认同)