将 S3 与 Active Storage 结合使用时出现“请求已过期”

2024-01-20

我是第一次使用 ActiveStorage。 在开发中一切正常,但在生产(Heroku)中我的图像无缘无故地消失了。

第一次显示正常,但现在没有显示图像。在控制台中我可以看到这个错误:

GET https://XXX.s3.amazonaws.com/variants/Q7MZrLyoKKmQFFwMMw9tQhPW/XXX 403 (Forbidden)

如果我尝试直接访问该 URL,我会得到一个 XML

<Error>
  <Code>AccessDenied</Code>
  <Message>Request has expired</Message>
  <X-Amz-Expires>300</X-Amz-Expires>
  <Expires>2018-07-24T13:48:25Z</Expires>
  <ServerTime>2018-07-24T15:25:37Z</ServerTime>
  <RequestId>291D41FAC6708334</RequestId>      
  <HostId>lEVGuwA6Hvlm/i40PeXaje9SEBYks9+uk6DvBs=</HostId>
</Error>

这就是我所看到的

<div class="cover" style="background-image: url('<%= rails_representation_path(experience.thumbnail) %>')"></div>

这就是我在模型中的内容

def thumbnail
  self.cover.variant(resize: "300x300").processed
end

简而言之,我不希望图像过期,而是希望图像始终存在。

Thanks


ActiveStorage 不支持非过期链接。它使用过期链接(私有),并支持仅在您的服务上上传私有文件。

这对我来说也是一个问题,并且做了2patches(注意)仅适用于 S3,一个简单的〜30行 https://github.com/rails/rails/issues/31419#issuecomment-370900013覆盖 ActiveStorage 仅适用于未过期(公共)链接,以及另一个向 has_one_attached 和 has_many_attached 方法添加 acl 选项 https://gist.github.com/dinatih/dbfdfd4e84faac4037448a06c9fdc016.

希望能帮助到你。

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

将 S3 与 Active Storage 结合使用时出现“请求已过期” 的相关文章

  • 仅适用于安全页面的安全回形针 URL

    我正在尝试找到使回形针网址安全的最佳方法 但仅限于安全页面 例如 显示存储在 S3 中的图像的主页是http mydomain com http mydomain com图像网址是http s3 amazonaws com mydomain
  • 从 Flask 中的 S3 返回 PDF

    我正在尝试在 Flask 应用程序的浏览器中返回 PDF 我使用 AWS S3 来存储文件 并使用 boto3 作为与 S3 交互的 SDK 到目前为止我的代码是 s3 boto3 resource s3 aws access key id
  • Watir 脚本偶尔返回 Net::ReadTimeout 错误

    我有一个 Watir 脚本 偶尔会意外地返回此错误 Net ReadTimeout 我搜索了这个错误并发现这个问题 https stackoverflow com questions 47452276 watir get sometimes
  • Capybara 2.0 和 rspec-rails -- 助手在规范/功能中不起作用

    我正在尝试使用辅助模块中的方法 但 rspec 似乎无法识别辅助程序以进行测试spec features 请注意 唯一的更改是spec helper rb正在添加require capybara rspec 我尝试移动helper rb t
  • 红宝石和纱线

    I have an error with my RoR project when I try to start it using Run shift f10 但是当我使用启动服务器时rails s在控制台中 它有效 Your Yarn pa
  • “array.map”是否保留原始顺序?

    我有一个User类has many Jobs 我使用以下代码映射作业 def ranges user jobs map u u start at u end at end 我有一个比较两个数组的规范 my array start1 end1
  • 如何在 RoR 中实施成就系统

    我正在尝试在我的 Ruby on Rails 应用程序中实现一个成就系统 但效果很差 我有一长串想要检查的成就 所有这些都是由各种控制器中的某些创建操作触发的 我的想法是我将拥有一个成就模型 其中包括控制器及其响应的操作 然后对创建进行之前
  • Rails 3.2 开发模式不显示带有回溯等的完整错误页面

    我刚刚升级到 Rails 3 2 一切正常 除了错误页面不再显示正常的开发调试信息 相反 它显示标准生产错误页面 白色背景 中间有红色文本 很抱歉 出了点问题 我们已收到有关此问题的通知 我们会尽快查看 Rails 3 2 是否有新的设置或
  • 从架构中删除表 - Rails

    我想删除架构中的一个表 我在第一次启动项目时创建了数据库并希望删除该表 这样做的最佳方法是什么 I tried rails g migration drop table installs但这只会创建一个空迁移 Schema create t
  • 如何在使用 Active Storage 上传之前调整图像大小(与 AWS 链接)

    我尝试将 Active Storage 与 Amazon Web Services 结合使用 而不是 Carrierwave 和 Cloudinary 使用 Carrierwave 我有一些功能可以在通过上传器控制器上传之前调整图像大小 但
  • 如何设置管理员批准模型的编辑

    我需要一个普通用户可以编辑模型的系统 但编辑实际上只有在管理员批准后才会发生 我发现了一颗宝石 叫做纸迹 https github com airblade paper trail它确实有模型版本控制 但不具体支持我想要做的事情 我想知道其
  • 尝试使用 Rails 和 PostgreSQL 生成模型时,命令挂起且没有错误

    使用该命令时 rails generate model Event name string 什么也没发生 我必须按 CTRL c 我使用的版本是 红宝石 2 1 1p76 导轨4 1 0 PostgreSQL 9 3 4 Mac OS X
  • 如何找到查询结果的大小

    我在 Rails 中有以下查询 records Record select y id source where source gt source y id gt y id group y id source having count 1 如
  • 无法验证 CSRF 令牌的真实性 Rails/React

    我的 Rails 应用程序中有一个 React 组件 我正在尝试使用它fetch 发送一个POST对于我在本地主机上托管的 Rails 应用程序 这给了我错误 ActionController InvalidAuthenticityToke
  • 我在 apache 中使用乘客 for Rails 时收到 403 错误

    我已经安装了所需的工具 并遵循了几个教程 试图让乘客做出回应 我可以访问公共文件夹 public 500 html 或 422 hml 中的静态文件 昨天我通过虚拟主机进入 发现一些乘客错误 但一段时间后 托管重新启动了服务 从那时起我就无
  • 在 Amazon Redshift COPY 命令中转义分隔符

    我正在将数据从 Amazon S3 提取到 Amazon Redshift 中的表中 该表包含多个列 其中某些列数据可能包含特殊字符 复制命令有一个选项称为Delimiter我们可以在将数据拉入表时指定分隔符 问题有2个方面 当我导出时 u
  • 尝试使用适用于 Windows XP 的 Heroku 时未找到 msvcrt-ruby18.dll

    我有一个学生在 Windows XP 上进行开发 他在尝试运行时遇到了一个奇怪的错误heroku keys add 错误是 This application has failed to start because msvcrt ruby18
  • 抑制 Rspec 3 的回溯

    我正在使用 rspec 3 2 0 和 capybara 2 4 4 并在我的 spec helper rb 文件中如下所示 config full backtrace false 对于大多数错误 我都会得到回溯 例如 Failure Er
  • Bootstrap shown.bs.tab 事件不起作用

    我正在使用灵活的模板 http the8guild com themes html flexy v1 7 stylesPage html 使用引导程序 并且我无法让选项卡上的 shown bs tab 事件正常工作 我已经成功让它发挥作用J
  • 验证 ActionCable 连接

    我发现了一个很棒的 ActionCable gem 它是 SPA 的一个很好的解决方案 我只想发送html css and js资产 所有其他连接将通过ActionCable 交换字符串或者整数并不难 但是如何通过ActionCable登录

随机推荐

  • T-SQL 分割字符串

    我有一个 SQL Server 2008 R2 列 其中包含一个需要用逗号分隔的字符串 我在 StackOverflow 上看到了很多答案 但没有一个在 R2 中有效 我已确保我对任何拆分函数示例具有选择权限 非常感谢任何帮助 我之前用过这
  • R中Box Cox变换故障排除(需要使用for循环或apply)

    请在下面找到我的数据 行是疾病组 0 对照 1 溃疡性结肠炎和 2 克罗恩病 列是基因表达值 structure c 5 54312e 05 5 6112e 06 9 74312e 05 1 3612e 06 1 29312e 05 7 2
  • R 中 nlme 线性混合模型中相互作用显着性的检验

    I use lme函数在nlme用于测试因子水平的 R 包items与因子水平有显着的交互作用condition 因素condition有两个级别 Control and Treatment 以及因子items有 3 个级别 E1 E3 我
  • 如何在ubuntu-18.04上安装nexus

    我需要帮助在 ubuntu 18 04 上安装 nexus oss 我在互联网上找不到任何 apt get 命令 我尝试在 sudo apt get search nexus 中搜索nexus包 但无法获得正确的nexus版本包 我在网上浏
  • Bootstrap Affix 插件内存泄漏

    这些行 https github com twbs bootstrap blob master js affix js L19 L21在引导程序词缀插件中似乎会导致内存泄漏 因为窗口获取对从未释放的词缀实例的引用 作为解决方法 我使用此代码
  • OpenAPI 生成器的 Gradle 配置

    当将 OpenAPI 生成器与 Gradle 一起使用时 我希望将性别源发送到其他源生成器插件使用的标准目录 类似 Maven 生成源的东西 到目前为止 我还无法做到这一点 特别是限制生成 Java 源类而不是整个 原型项目 看来 Open
  • 在 AVX 寄存器内循环字节的有效方法

    摘要 tl 博士 除了进行 2 倍移位并将结果混合在一起之外 还有什么方法可以按位旋转 YMM 寄存器中的字节 使用 AVX 对于 YMM 寄存器中的每 8 个字节 我需要向左旋转 7 个字节 每个字节都需要比前一个字节向左旋转一位 因此
  • 如何为 SASS 变量中的 fs-* 类自定义 Bootstrap 5 字体大小

    如何更改 Bootstrap 5fs 上课于sass 因为在文档 https getbootstrap com docs 5 0 utilities text variables仅显示如何修改h 类如h5 font size 但不是fs c
  • Spring MVC:如何修改从控制器发送的json响应

    我已经使用如下控制器构建了一个 json REST 服务 Controller RequestMapping value scripts public class ScriptController Autowired private Scr
  • 64 位 Windows API:C/C++“DWORD”的大小是多少?

    我只安装了 32 位 Windows 因此我无法亲自验证这一点 如果我没理解错的话 微软API中各个地方使用的DWORD都是参考原来的16位字 和现在的硬件架构无 关 那么 即使我最终编译并链接我的应用程序以在 64 位 Windows 中
  • 有没有办法从 UITableView 中删除分隔线?

    我正在寻找一种在普通模式下完全删除 UITableView 中的分隔线的方法 这是在分组中自动完成的 但这也会以难以测量的方式改变表格的尺寸 我已将分隔线颜色设置为 colorClear 但这并不能完全解决问题 当我尝试在单元格中绘制自定义
  • 将文本文件中的数据读入 VBA 数组

    我有以下 VBA 代码 Sub read in data from txt file Dim dataArray As String Dim i As Integer Const strFileName As String Z sample
  • 使用 Common Lisp 进行排序时出现意外的列表重复

    编辑 解决方案是将第一个 let 形式中的 1 替换为 list 1 这是因为我试图修改文字数据 谢谢您的帮助 我会投赞成票 但显然你需要 15 声望 这是我在这个网站上的第一篇文章 我正在解决一些欧拉计划 https projecteul
  • 如何结合Flyway处理不在序列中的分支的合并

    我刚刚遇到了以下情况 测试服务器当前正在运行 Flyway 版本 1 V1 每当有任何内容推送到测试服务器上时 测试服务器都会自动更新 包括 Flyway 脚本 develop branch 开发人员决定开始在分支上开发新功能feature
  • 根据一组条件将数据框中的值替换为其他数据框中的值

    在 df1 中 我需要将 msec 的值替换为 df2 中的相应值 df1 lt data frame ID c rs rs rs tr tr tr cond c 1 1 2 1 1 2 block c 2 2 4 2 2 4 correc
  • 为什么我不能“转到默认值”或“转到案例 x;”在开关选择结构内?

    C11 第 6 8 1 节 http www iso 9899 info n1570 html 6 8 1 or C99 http www iso 9899 info n1256 html 6 8 1 或第 3 6 1 节C89 http
  • Android:我应该以什么方式将代码与样式分开?

    从 html php css 开始 Android 编程 我在网上搜索了一种将代码与样式分开的简单方法 现在我需要在列表或表格视图中显示数据库中的数据 简而言之 我从数据库获取一个游标 迭代它 在代码中动态创建每个列表项作为 TextVie
  • 如何在 leiningen repl 中预加载 clojure 文件?

    我希望在启动 clojure REPL 时预加载一些 clojure 函数 这些函数没有多大用处 除非您在 REPL 上下文中使用它们 如果有帮助 我通常使用 leiningen 为我启动 clojure REPL 我如何告诉 clojur
  • 函数是如何柯里化的?

    我了解柯里化的概念是什么 并且知道如何使用它 这些不是我的问题 而是我很好奇这是如何在比 Haskell 代码更低的级别上实际实现的 例如 当 2 4被柯里化 是一个指向2维持直到4被传入 甘道夫会扭曲时空吗 这是什么魔法 简短回答 是的
  • 将 S3 与 Active Storage 结合使用时出现“请求已过期”

    我是第一次使用 ActiveStorage 在开发中一切正常 但在生产 Heroku 中我的图像无缘无故地消失了 第一次显示正常 但现在没有显示图像 在控制台中我可以看到这个错误 GET https XXX s3 amazonaws com