使用不同的查询字符串缓存图像(S3 签名的 URL)

2023-11-21

我想知道是否可以让浏览器缓存带有签名网址的图像。

我想要的是为每个请求生成一个新的签名网址(相同的图像,但具有更新的签名),但不要让浏览器每次都重新下载它。

那么,假设与缓存相关的标头设置正确,并且除了查询字符串之外所有 URL 都是相同的,有什么办法让浏览器缓存它呢?

网址看起来像这样:

http://example.s3.amazonaws.com/magic.jpg?WSAccessKeyId=stuff&Signature=stuff&Expires=1276297463
http://example.s3.amazonaws.com/magic.jpg?WSAccessKeyId=stuff&Signature=stuff&Expires=1276297500

我们计划将电子标签设置为 md5sum,那么它至少会发现此时是同一张图像吗?

我的另一个选择是跟踪上次给出 URL 的时间,然后在旧 URL 过期之前开始给出新 URL,但我不想处理会话信息。


浏览器将使用整个 URL 进行缓存,包括请求参数。因此,如果您更改请求参数,它将实际上成为缓存中的新“密钥”,并且始终会下载该图像的新副本。这是广告服务领域的一种流行技术 - 您将随机数(或当前时间戳)添加到 URL 末尾作为参数,以确保浏览器始终返回服务器以发出新请求。

使其发挥作用的唯一方法是使 URL 静态 - 即通过使用 Apache 重写规则或某种代理。

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

使用不同的查询字符串缓存图像(S3 签名的 URL) 的相关文章

  • HTTP部分上传、断点续传的标准方法

    我正在开发 http 客户端 服务器框架 并寻找处理部分上传的正确方法 与使用带有 Range 标头的 GET 方法进行下载相同 但是 HTTP PUT 并不打算恢复 据我所知 PATCH 方法不接受 Range 标头 有没有办法通过 HT
  • 在apache中有条件地设置缓存头

    我想根据访问文件的路径有条件地设置缓存标头 基本上 访问http www example com cache cache key 应该为具有遥远未来缓存标头的文件提供服务 我使用重写规则来设置环境变量 然后尝试根据该变量设置缓存控制标头 然
  • 以 RESTful 方式增加资源计数器:PUT 与 POST

    我有一个带有计数器的资源 为了举例 我们将该资源称为profile 计数器是数量views对于该配置文件 Per the 休息维基 http rest blueoxen net cgi bin wiki pl HttpMethods PUT
  • 在 S3 中迭代对象时出现“ConnectionPoolTimeoutException”

    我已经使用 aws java API 一段时间了 没有遇到太多问题 目前我使用的是库 1 5 2 版本 当我使用以下代码迭代文件夹内的对象时 AmazonS3 s3 new AmazonS3Client new PropertiesCred
  • 多个客户端如何同时连接到服务器上的一个端口(例如 80)? [复制]

    这个问题在这里已经有答案了 我了解端口工作原理的基础知识 但是 我不明白的是多个客户端如何同时连接到端口 80 我知道每个客户端都有一个唯一的 对于他们的机器 端口 服务器是否从可用端口回复客户端 并简单地声明回复来自 80 这是如何运作的
  • Access-Control-Allow-Origin值跨站缓存

    我正在尝试编写一个 nginx 配置来处理 http 和 https 上的两个站点 只要客户端从不访问这两个站点 它似乎就可以工作 但如果它们这样做 就会出现缓存 跨站点问题 Allow cross origin location eot
  • 编写每个处理程序中间件

    我希望从处理程序中提取一些重复的逻辑 并将其放入一些每个处理程序的中间件中 特别是 CSRF 检查 检查现有会话值 即身份验证或预览页面 等 我读了关于此的几篇文章 http justinas org writing http middle
  • 使用 Android 发送 HTTP Post 请求

    我一直在尝试从 SO 和其他网站上的大量示例中学习 但我无法弄清楚为什么我编写的示例不起作用 我正在构建一个小型概念验证应用程序 它可以识别语音并将其 文本 作为 POST 请求发送到 node js 服务器 我已确认语音识别有效 并且服务
  • 浏览器显示 clojure 环中不存在 access-control-allow-origin 标头

    我通过客户端浏览器向服务器发出请求 如下所示https example com bar https example com bar 但出现错误 Access to XMLHttpRequest at https example com ba
  • HTTPWebResponse 响应字符串被截断

    应用程序正在与 REST 服务通信 Fiddler 显示作为 Apps 响应传入的完整良好 XML 响应 该应用程序位于法属波利尼西亚 在新西兰也有一个相同的副本 因此主要嫌疑人似乎在编码 但我们已经检查过 但空手而归 查看流读取器的输出字
  • 使用随机目录结构重命名传入的 S3 文件

    我有一个可以将文件发送到 s3 存储桶的应用程序 不幸的是 我无法更改它在 s3 中发送到的路径 因此我必须找到一种方法来获取该文件 mys3bucket apps region 020 07 14T22 24 34Z details cs
  • 如何以 Rails 形式将图像从 上传到具有 Rails Active Storage 的 S3?

    正如标题中所述 我正在尝试使用 Rails 的 Active Storage 从嵌套在 Rails 表单中的元素将图像上传到我的 S3 存储桶 到目前为止我已经能够使用使用 Active Storage 上传图像 这User class h
  • 如何使用 C# / .Net 将文件列表从 AWS S3 下载到我的设备?

    我希望下载存储在 S3 中的多个图像 但目前如果我只能下载一个就足够了 我有对象路径的信息 当我运行以下代码时 出现此错误 遇到错误 消息 读取对象时 访问被拒绝 我首先做一个亚马逊S3客户端基于我的密钥和访问配置的对象连接到服务器 然后创
  • 在不是结构方法的函数上实现缓存的惯用方法是什么?

    我有一个像这样的昂贵的功能 pub fn get expensive value n u64 u64 let ret 0 for 0 n expensive stuff ret 并且它经常被用相同的参数调用 它是纯粹的 这意味着它将返回相同
  • 谁添加“_”单下划线查询参数?

    我有一个在 Apache 上运行的 PHP 服务器 我收到很多类似这样的请求 10 1 1 211 02 Sep 2010 16 14 31 0400 GET request 1283458471913 action get list HT
  • python中的StringIO实际用途是什么?

    StringIO到底是用来做什么的 我一直在互联网上寻找一些例子 然而 几乎所有的例子都非常抽象 他们只是展示 如何 使用它 但它们都没有表明 为什么 和 在什么情况下 应该 将使用它 附注不要与 stackoverflow 上的这个问题混
  • 如何减少使用 AWS Glue 将 parquet 文件写入 s3 所需的时间

    我正在创建一个胶水作业 需要处理来自 s3 路径的每日 4TB 数据量 s3
  • 如何使用 Vapor 和 Leaf 将图像从浏览器上传到 Amazon S3?

    我已经设置了 AWS S3 存储桶 并且可以使用 Vapor 3 和 Postman 上传文件 PUT request 和标头 x amz acl public read 但我想从浏览器中执行此操作 我使用的是 leaf 那么如何从浏览器上
  • Amazon S3 403 AccessDenied 错误

    当我从 S3 存储桶请求对象时 我从亚马逊收到一些奇怪的 403 错误 它似乎是间歇性的 并且只会快速连续地发生 如果我稍后尝试访问相同的对象 通常可以毫无问题地检索它们 我的直觉是 这些错误的发生是由于某种速率限制约束 但我在文档中找不到
  • 是否可以使用 PHP 重定向发送 POST 数据?

    更新 这不是重复的如何使用 PHP 发送 POST 请求 https stackoverflow com questions 5647461 how do i send a post request with php 那里的解决方案对我不起

随机推荐

  • UIActivityViewController - 仅附加某些活动的 URL

    我一直在尝试使用新的 UIActivityViewController 来替换所有用于共享的 UIActionSheets 但是我遇到了问题 我有 5 项活动 消息 电子邮件 复制 Twitter 和 Facebook 我已经弄清楚如何让它
  • 如何列出玩家所有可用的 GKTurnBasedMatches?

    我正在使用 Game Center 的回合制比赛构建游戏 我想显示所有可用匹配的列表 我尝试过使用loadMatchesWithCompletionHandler 但游戏数组返回为nil 并且错误也返回为nil 有一些比赛正在进行中 这是我
  • Spring XML 文件配置层次结构帮助/说明

    当我第一次开始学习 Spring 时 一切都是在 applicationContext xml 文件中配置的 然后 当我开始专门阅读有关 Spring 最新版本的书籍时 他们都在单独的 XML 文件中完成了配置 例如 myapp servl
  • 在 alter table 中创建约束而不检查现有数据

    我正在尝试创建一个约束OE 产品信息该表随 Oracle 11g R2 一起提供 约束应该使产品名称 unique 我已经用以下语句尝试过 ALTER TABLE PRODUCT INFORMATION ADD CONSTRAINT PRI
  • HttpClient GetAsync 在 Windows 8 上的后台任务中失败

    我有一个 Win RT 应用程序 它有一个后台任务 负责调用 API 来检索更新自身所需的数据 然而 我遇到了一个问题 当在后台任务之外运行时 调用 API 的请求可以完美运行 在后台任务内部 它会失败 并且还隐藏任何可能有助于指出问题的异
  • 我可以关闭在Python中使用subprocess.Popen打开的CMD窗口吗?

    我有一个程序需要在新的 CMD 中运行小任务 例如 def main some code proc subprocess Popen start bat some code proc kill subprocess Popen 打开一个新的
  • Android中如何禁用状态栏点击和下拉?

    如何在 Android 中禁用状态栏点击和下拉 我已经尝试了很多东西 但这不起作用 在我看来 有两种选择 选项 1 您可以在状态栏上放置一个窗口以禁用任何触摸或下拉 选项 2 您还可以重写 OnWindowFocusChanged 方法以在
  • XHTML 中的空元素关闭前是否还需要添加空格?

    W3C 建议在 XHTML 中的结束标记前放置一个空格 因为这可以更好地向后兼容某些浏览器 例如写 br 代替 br 但是 是否还有浏览器不允许您省略空格 W3C 没有提及哪些浏览器会导致问题 我知道这没有多大区别 我只是更喜欢较短的版本
  • 关闭应用程序是否会停止所有活动的BackgroundWorker?

    简单的问题 重复一下标题 关闭 WinForms 应用程序是否会停止所有活动的后台工作人员 是的 它确实 BackgroundWorker RunWorkerAsync只需调用BeginInvoke在内部委托上 该委托又将请求排队到Thre
  • 厨师食谱在 ohai 未定义方法“[]”上失败,因为 nil:NilClass

    我正在编写一本厨师食谱 在我的流浪盒子上设置一个带有 nginx postgresql 和 unicorn 的普通 ubuntu 12 04 2 但是我遇到了 nginx 的麻烦 有一个例外 undefined method for nil
  • numpy 向量化方法来计算整数数组中的非零位

    我有一个整数数组 int1 int2 intn 我想计算这些整数的二进制表示中有多少个非零位 例如 bin 123 gt 0b1111011 there are 6 non zero bits 当然 我可以循环整数列表 使用bin and
  • 在 vs code 中调试 webpack 开发服务器?

    是否可以配置 launch json 来调试 webpack 开发服务器 就我而言 我正在开发一个通用 通过 Express 服务器渲染 React 应用程序 如果能够直接在 VS Code 中调试服务器端 那就太好了 我一直在使用 Web
  • PHP/MySQL - 将数组数据存储为 JSON,不好的做法?

    我想知道将数组作为 JSON 字符串存储在 mysql 文本字段中是否是一个好的做法 我正在创建一张发票 允许用户向发票添加无限数量的产品 提交表单后 它会删除所有空白项目等 但我通常会留下 2 5 个项目 具体取决于情况 每个商品都有一个
  • 如何以编程方式了解天蓝色角色的当前区域?

    我需要以编程方式找到我当前角色运行的当前区域 例如 美国西部 或 美国东部 有没有API可以找到这个 考虑使用获取云服务在服务管理 API 中 当您提供您的角色所属的服务时 您可以检索类似于以下内容的响应 请注意我已加星标的位置字段
  • INSERT ... SELECT 是原子事务吗?

    我使用这样的查询 INSERT INTO table SELECT FROM table2 t2 JOIN WHERE table2 date lt now 1 day INTERVAL FOR UPDATE OF t2 SKIP LOCK
  • 在 T-SQL 中联接来自 XML 的数据

    我有以下 XML 消息 DECLARE XML AS XML SET XML
  • Visual Basic 中的 Action(Of T),位于 List(Of T).ForEach 中

    我到处搜索有关如何使用此功能的文档 当循环我could写起来很简单 不需要时间 我真的很想学习如何使用它 基本上我有一堂课 比如说 Widget 有一个Save sub 不返回任何内容 所以 Dim w as New Widget w Sa
  • Google Datastore 查询和最终一致性

    我想确认我对 Google 数据存储中最终一致性的理解 假设我有一个定义如下的实体 使用 ndb class Record ndb Model name ndb StringProperty content ndb BlobProperty
  • 有没有按类前缀的 CSS 选择器?

    我想将 CSS 规则应用于其中一个类与指定前缀匹配的任何元素 例如 我想要一个适用于具有以以下开头的类的 div 的规则status 以下片段中的 A 和 C 但不是 B div class foo class status importa
  • 使用不同的查询字符串缓存图像(S3 签名的 URL)

    我想知道是否可以让浏览器缓存带有签名网址的图像 我想要的是为每个请求生成一个新的签名网址 相同的图像 但具有更新的签名 但不要让浏览器每次都重新下载它 那么 假设与缓存相关的标头设置正确 并且除了查询字符串之外所有 URL 都是相同的 有什