gpt4 book ai didi

rails-activestorage - Rails 5.2 Active Storage 清除/删除附件不会删除 Blob 或附件记录

转载 作者:行者123 更新时间:2023-12-04 11:55:09 30 4
gpt4 key购买 nike

我正在使用 rails 5.2 并且我正在尝试使用 Amazon S3 设置 Active Storage。我的应用程序可以完全访问 S3,我可以附加一个 avatar图像到 user .但是当我尝试删除头像时,我遇到了以下问题:

> user.avatar.attached? #true`
> user.avatar.purge
S3 Storage (697.9ms) Deleted file from key: Ns1KBRzdgxLNnY31sH72vT5t
S3 Storage (227.0ms) Deleted files by key prefix: variants/Ns1KBRzdgxLNnY31sH72vT5t/
Aws::S3::Errors::AccessDenied: Access Denied

然后当我检查存储桶时,该文件实际上被删除了,但在数据库中查找,都是 Blob ,以及 Attachment记录仍然存在。

任何想法为什么会发生这种情况?

编辑
根据接受的答案中的建议,我对我的 IAM 权限进行了一些更新。这些是我更新的项目:
  • 将策略附加到我的 IAM 用户,而不是我的 s3 存储桶。
  • 列出了所有必需的操作。
  • 在资源字段中添加整个存储桶,而不仅仅是所有对象。

  • 最后我的策略 json 看起来像这样:
        {
    "Version": "2012-10-17",
    "Statement": [
    {
    "Sid": "VisualEditor0",
    "Effect": "Allow",
    "Action": [
    "s3:PutObject",
    "s3:GetObject",
    "s3:ListBucket",
    "s3:DeleteObject"
    ],
    "Resource": [
    "arn:aws:s3:::my-bucket/*",
    "arn:aws:s3:::my-bucket"
    ]
    }
    ]
    }

    最佳答案

    您用于 Active Storage 的 S3 帐户必须具有 s3:DeleteObject整个存储桶的权限。 (如 Active Storage guide 中所指定,它还必须具有 s3:ListBuckets3:PutObjects3:GetObject 权限。)

    关于rails-activestorage - Rails 5.2 Active Storage 清除/删除附件不会删除 Blob 或附件记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50339851/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com