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

2024-01-11

我正在使用 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记录仍然存在。

有什么想法为什么会发生这种情况吗?

EDIT我按照已接受答案的建议对 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整个存储桶的权限。 (如指定主动存储指南 http://guides.rubyonrails.org/active_storage_overview.html#amazon-s3-service,它还必须具有s3:ListBucket, s3:PutObject, and s3:GetObject权限。)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Rails 5.2 Active Storage 清除/删除附件不会删除 Blob 或附件记录 的相关文章

随机推荐

  • Objective-C 中的 NSBundle 和 mainBundle 是什么?

    关于iOS上的Objective C应用程序 我在Apple开发者网站上阅读了一些示例程序 我发现几乎所有的应用程序都包含一个词叫做 NSBundle https developer apple com documentation foun
  • 使用时间跨度对具有相同值的连续行进行分组

    抱歉标题含糊 我只是不知道如何描述这个难题 给出一个教室的时间表如下 Classroom CourseName Lesson StartTime EndTime 1001 Course 1 Lesson 1 0800 0900 1001 C
  • 在 ASP.NET 中发送大量电子邮件

    这是我发送大量电子邮件的代码 我想优化此代码以确保它能够正常工作并且可以成功发送所有电子邮件 我应该怎么办 我知道在发送之间设置中断可能很有用 但我该怎么做呢 主要问题是避免将电子邮件分类为垃圾邮件并减少发送失败的电子邮件数量 var li
  • 使用 Chrome Identity API 获取 id_token

    我正在开发一个 Google Chrome 扩展程序 以允许用户使用他们的 Google 帐户进行身份验证 我决定使用Chrome Identity API 要对我的应用程序中的用户进行身份验证 我需要获取 ID Token 签名令牌 有没
  • 未捕获的类型错误:无法读取 null 的属性“on”[重复]

    这个问题在这里已经有答案了 我收到这个未捕获的类型错误 我不确定是什么原因造成的 也许与 JQuery 有关 这是确切的代码 when add to cart link is clicked addtocart on click funct
  • 使用 javascript 将外部 .htm 文件加载到 div 中

    所以我得到了这个代码 JavaScript html a href file htm class ajax Link a 它在 Firefox 中完美运行 但是当我在 Chrome 中单击链接时 什么也没有发生 而 IE 只是打开一个包含该
  • R 中的 padr:以用户定义的间隔进行填充

    我正在以 5 分钟的时间间隔处理时间序列数据 部分 5 分钟时间序列缺失 我想对数据集重新采样 以用 NaN 值填充缺失的 5 分钟时间段 我在这里找到了有关如何解决此问题的大量信息 R 插入缺少日期 时间的行 https stackove
  • 在数组中查找几个感兴趣的区域

    假设我进行了一项实验 其中我让 python 程序运行了很长一段时间 在那段时间里 我对一些数量与时间的关系进行了多次测量 每次测量都以 1 到 3 秒之间的某个值分隔 所使用的时间步长比该值小得多 比如 0 01 秒 即使只取 y 轴 这
  • 使用 FFmpeg 中的 libavcodec 解码作品

    我正在尝试使用 libavcodec 解码作品 我可以单独使用 libopus 库来做到这一点 但我正在尝试使用 libavcodec 实现相同的目标 我试图弄清楚为什么它在我的情况下不起作用 我有一个 rtp 流并尝试对其进行解码 解码数
  • 在 Google Cloud Vision API 中指定响应语言

    我正在使用 Google Cloud Vision API 来检测给定图像中的地标 网络实体和其他内容 查看文档here https cloud google com vision docs libraries 我专门使用 images a
  • C# 选择列表中的元素作为字符串列表

    在 C 中 我需要将对象列表中特定属性的所有值获取到字符串列表中 List
  • 更改 ViewModel 的视图

    我正在尝试为 mt WPF 应用程序实现 MVVM 设计模式 为了将视图连接到视图模型 我使用ResourceDictionary 用于Application Resources 看起来像
  • StandardOpenOption.SPARSE 有什么用?

    Java 7 定义这个选项 http docs oracle com javase 7 docs api java nio file StandardOpenOption html SPARSE 但我无法理解它的用处 考虑这个简单的程序 在
  • Sql Server 2005 与 Windows 10 不兼容

    当我升级到 Windows 10 时 SQL Server 2005 可以工作 现在它无法工作 据 Microsoft 称 我读到它与 Windows 8 不兼容 对我来说 Windows 10 只是 Windows 8 的成熟版本 有什么
  • Scala Playframework 发送文件

    我有一串数据 是从数据库中的数据中获取的 我想将其发送给用户 但不创建文件的本地副本 例如 Ok MyString as file csv 但它不起作用 我该怎么做 您可以通过使用来做到这一点chunked与Enumerator 我也用过w
  • 触发 PHP 处理

    I ask a 类似的问题 https stackoverflow com q 5964407 2246380昨天 但这一切都变得令人困惑 我想我应该重新开始并尝试更好地解释它 我即将设计一个拍卖网站 与 eBay 非常相似 物品从 24
  • 表单验证和表单助手

    我仍然在 Play 2 0 中的表单验证和表单助手方面遇到困难 我有一个与 Twitter Bootstrap 一起使用的登录屏幕 所以我的登录表单如下所示 helper form routes Application authentica
  • 在 GitHub Actions 工作流程中缓存 APT 包

    我对我的 C 项目使用以下 Github Actions 工作流程 工作流程在约 40 秒内完成 但其中一半以上的时间都花在安装valgrind包及其依赖项 我相信缓存可以帮助我加快工作流程 我不介意多等几秒钟 但这似乎是对 GitHub
  • 将重音符号转换为 UTF-8 字符

    我有带有各种变音符号的 Rnw Latex 文档 Kri s hna and St o ne etc 当我编织文档时 它们正确翻译为Kri shna and St one etc R 或任何 R 包中是否有命令可以为我执行此转换 例如 co
  • Rails 5.2 Active Storage 清除/删除附件不会删除 Blob 或附件记录

    我正在使用 Rails 5 2 并尝试使用 Amazon S3 设置 Active Storage 我的应用程序可以完全访问 S3 并且我可以附加avatar图像到user 但当我尝试删除头像时 遇到以下问题 gt user avatar