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 或附件记录 的相关文章

  • Rails ActiveStorage url_for 返回无效的 URL

    我有一个带有头像的员工模型 我可以将图像附加到头像 但每当我尝试显示图像时 url for employee avatar 产生死链接 我所看到的只是来自的价值alt来自标签的属性 我得到的图像标签如下 img src rails acti
  • 在 Rails 6 中使用 activestorage 时,如何在重新显示表单时保留文件?

    在 Rails 6 中 我有一个带有文件字段的表单 我使用 activestorage 来存储文件 如果提交表单后验证失败 则会重新显示表单并显示验证错误 重新显示表单时如何保留添加到文件字段的文件 以便用户不必再次将文件添加到表单 Rai
  • Rails active_storage:安装不起作用

    我已将 Rails api 应用程序从 5 1 更新到 5 2 我只使用rails api 我正在尝试使用活动存储 我认为问题出在线路上config api only true in config application rb 我做了很多谷
  • Rails Active Storage 并非每次都工作。有时有效,有时无效

    我正在使用 Active Storage 来存储比赛得分图像 我的班级看起来像这样 class TournamentMatch lt ApplicationRecords has many attached score cards end
  • 在 Active storage Rails 5.2 中按文件名排序多个图像

    我在 Post 模型中有 has many attached 图像关系 我想在 帖子显示 页面上显示图像时按文件名对图像进行排序 如何按文件名排序 例子 是否可以通过像 active storage blobs filename 之类的东西
  • 配置 ActiveStorage 以使用具有 IAM 角色的 S3

    我正在尝试配置 ActiveStorage 以使用 S3 存储桶作为存储后端 但我不想传递任何access key id secret access key region 相反 我想使用之前定义的 IAM 角色 提到了这样的配置here h
  • 获取 Active Storage 变体的元数据

    我有一个 Active Storage 图像变体 例如 我正在尝试获取width and height该变体的值 因为它们是未知的 用于width and heightHTML 属性 我预计他们会在这里 model logo image v
  • 未定义方法“has_one_attached” - Spree、AWS S3、产品图像、Rails

    我尝试将 Spree 购物车与 AWS S3 连接以上传产品图片 但不断收到错误消息 rbenv versions 2 4 0 lib ruby gems 2 4 0 gems activerecord 5 2 0 lib active r
  • 是否可以阻止 ActiveStorage 删除服务存储上的文件?

    我在用着ActiveStorage处理我的 Rails 应用程序中的附件 更新模型的附件时 它似乎将清除作业排入队列 并删除远程存储服务上以前的附加文件 S3 here 我不想要我的文件S3要系统删除的存储桶 即使我的数据库中没有附加任何记
  • Rspec :存根 ActiveStorage 下载方法

    我开发的系统使用 ActiveStorage 将缓存数据存储在 S3 上 然后再将其用于其他用途 在我的规范中 我想存根该文件的下载方法 并加载特定文件以进行测试 allow user cached data to receive down
  • 使用 Active Storage 在 active_admin 中上传多个图像

    我发现有关在 activeadmin 中使用 Active Storage 上传图像的有用文章 https medium com maris cilitis using ruby on rails active storage image
  • Rails Active Storage 无模型

    Rails Active Storage 可以在没有模型支持的情况下使用吗 我有一个表格 需要上传文件 但我不希望将其附加到模型中 我只需要上传文件 以便我可以使用后台作业处理它 然后将其删除 Yes 当 ActiveStorage 由模型
  • 附加文件时的 Rails ActiveStorage 范围

    使用 ActiveStorage 时 如何创建附加文件的范围 例如 class Check lt ActiveRecord Base has one attached image end 我想要类似的东西Check has attached
  • Rails 5.2 Active Storage 清除/删除附件

    因此 我使用 Active Storage 上传附加到集合模型的多个图像 一切正常 除非我尝试从集合中清除 删除单个附件 问题 由于某种原因 每当我加载集合的显示页面时 我的所有图像都会立即被清除 删除 当然 我只想在单击链接时删除文件 有
  • Active Storage:在 video_tag 中显示视频

    在 Rails 5 2 应用程序中 我想显示之前通过 Active Storage 在 S3 中上传的视频 当我使用这个时 我收到此错误 The asset is not present in the asset pipeline 我检查了
  • Rails 5.2 中单独的secret_key_base?

    我刚刚从 5 1 升级到 5 2 我对这种 更好 的存储秘密的方法感到很困惑 也许我不明白 但现在开发和生产似乎已经 合并 成一个单一的SECRET KEY BASE也master key 它是否正确 如果没有 我如何使用单独的主密钥和SE
  • 使用 Amazon S3 的 Active Storage 不使用指定的文件名进行保存,而是使用文件密钥进行保存

    我在使用 Active Storage 时遇到问题 当我上传到 Amazon S3 时 不是使用原始名称将文件保存在存储桶内 例如myfile zip它正在将其另存为key与该文件关联 所以在 Cyber duck 中我看到这样的东西 5Y
  • 猴子修补 ActiveStorage::Attachment 丢失

    所以我决定添加一个urlActiveStorage Attachment 对象的 attr accessor In 发展该补丁会保留一段时间 直到它看起来 已经丢失 这意味着它可以工作几分钟 然后就不再工作了 然后我需要重新启动服务器才能再
  • 活动存储 has_many_attached 正在清除以前的上传

    我正在尝试将更多文件添加到 has many attached 中 但是当我上传新文件时 先前的文件将被清除 上传多个文件确实会添加多个文件 但它们也会在下次上传时被清除 这是有意的行为吗 如果是这样 我该如何防止清除 log rb cla
  • ActiveStorage上传大型base64编码字符串?

    如果我有在客户端上使用 JavaScript 编辑 生成的图像 例如 裁剪的照片或画布绘图的结果 是否可以使用 ActiveStorage 上传它 它通常是一个包含以下内容的大字符串 img src 它存储在 JavaScript 变量中

随机推荐

  • 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