AWS服务通过校验和验证S3中文件的数据完整性?

2023-12-06

确保 S3 中的文件如其所声称的那样的一种方法是下载该文件,获取其校验和,并将结果与​​您期望的校验和进行匹配。

AWS 是否提供任何允许这种情况发生的服务without用户需要先下载文件吗? (即理想情况下,一个简单的请求/url 提供 S3 文件的校验和,以便可以对其进行验证before文件已下载)

到目前为止我尝试过的

我可以想到一个 DIY 解决方案

  • 创建一个接受 API 端点POST使用 S3 文件 url 进行请求
  • 让 API 运行 lambda 来生成文件的校验和
  • 响应校验和值

这可能有效,但已经有点复杂,并且需要进一步考虑,例如大文件可能需要很长时间才能生成校验和(例如 > 60 秒)

我希望 AWS 有一些简单的方法来验证 S3 文件?


有一个ETag针对每个对象创建,这是对象内容的 MD5。

不过,似乎也有一些例外。

From 常见响应标头 - Amazon Simple Storage Service:

ETag:实体标签是对象的哈希值。 ETag 仅反映对象内容的更改,而不反映其元数据的更改。 ETag 可能是也可能不是对象数据的 MD5 摘要。是否取决于对象的创建方式以及加密方式,如下所述:

  • 通过 PUT 对象、POST 对象或复制操作或通过 AWS 管理控制台创建并通过 SSE-S3 或明文加密的对象具有 ETag是 MD5 摘要他们的对象数据。

  • 由 PUT 对象、POST 对象或复制操作或通过 AWS 管理控制台创建并由 SSE-C 或 SSE-KMS 加密的对象具有以下 ETag:不是 MD5 摘要他们的对象数据。

  • 如果对象是通过分段上传或分段复制操作创建的,则 ETag不是 MD5 摘要,无论加密方法如何。

此外,分段上传的 ETag 计算可能很复杂。看:s3cmd - 计算大于 5GB 的文件的 Amazon-S3 Etag 的算法是什么? - 堆栈溢出

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

AWS服务通过校验和验证S3中文件的数据完整性? 的相关文章

随机推荐

  • 如果多个脚本设置 window.onload 会发生什么?

    StackOverflow 和其他网站上有许多关于避免命名空间冲突问题的帖子 在我的场景中 我只想在 DOM 可访问后执行 JavaScript 中的一个方法 如果我执行以下操作会避免命名空间冲突吗 如果稍后注入的脚本也设置了 onload
  • 通过 shell 变量传递包含空格的参数

    我有一个程序 我想通过从 shell 变量传递参数来调用它 在整个问题中 我将假设它是由 bin sh echo 即它打印出传递给它的参数数量 我们就这样称呼它吧count args 我这样称呼我的程序 X arg1 arg2 count
  • 一个广泛的项目:将音频从麦克风流式传输到 Android 设备

    我想从蓝牙麦克风获取音频输入并将其大声输出 就像扩音器或简单的 PA 系统一样 并实时播出 为此 我使用 AudioRecord 和 AudioTrack 类 因为 MediaRecorder 和 MediaPlayer 写入和读取外部文件
  • JavaScript 或 jQuery 能否根据多个条件对 JSON 数组进行排序?

    我有一个自动完成列表的潜在结果的 JSON 数组 该列表定义为 var fundList there s lots more than this name Pension Managed Fund 1 name Managed Proper
  • jQuery:form.submit(fn) 不适用于 Asp.net?

    我试图将事件处理程序附加到 asp net 渲染页面上的 form submit 但没有成功 我想拦截每个回发 以及文档 说我应该可以 难道我做错了什么 document ready function form submit functio
  • mvc razor 可编辑 DropDownList

    我正在寻找一个代码来使下拉列表在 MVC razor 中可编辑 Html DropDownList 提供标准选择列表 但值不可编辑 我尝试了教程中的示例 但它似乎不起作用 首先需要在页面中添加脚本引用 如果您在服务器上托管此脚本 您只需在下
  • 我的PHP时差功能可以改进吗?

    下面是我的函数 它将采用时间戳并以以下格式告诉您从现在开始已经过去的时间23天3小时4分6秒 主要问题是在我的网站上 我使用 mysql 的 DATETIME 而不是 TIMESTAMP 因此要使用此函数 我必须将日期时间从 mysql 转
  • 如何编写php函数

    我想知道如何用 c 编写 php 函数 比如strtoupper 如果有教程请放在这里 thanks 要用 C 语言编写一个可以从 PHP 中使用的函数 您必须编写一个扩展 不幸的是 关于可用的信息并不多 尽管如此 通过搜索我的书签 以下是
  • 推送下一个视图时的活动指示器 - didSelectRowAtIndexPath

    我只能在 iPhone 应用程序中成功推送下一个视图 但是 导致下一个视图检索数据来填充UITableViews 有时等待时间可能是几秒钟或稍长 具体取决于连接情况 在此期间 用户可能会认为应用程序已冻结等 因此 为了解决这个问题 我认为实
  • Android API 级别 2.3.3 之前的 setType("message/rfc822") 意图

    我的设置类型有问题 消息 rfc822 用于发送电子邮件的意图带文件附件 on 安卓模拟器 我必须使用 setType message rfc822 因为该文件没有标准 MIME 类型 SQLite 数据库 并且我试图避免选择列表中的大量应
  • 保存特定于应用程序的数据,即使在应用程序删除后也能保留

    有没有一种方法可以在应用程序卸载后保留一些数据 并且在应用程序再次安装后可以检索 我找到了 NSUserDefault 但我不确定 请指教 let defaults NSUserDefaults standardUserDefaults d
  • 无法在 Excel 自定义函数中获取 POST 请求

    我们目前正在应用程序中实现自定义功能 但无法使 POST 请求正常工作 我们尝试过什么 使用 fetch 进行 POST 确切的功能适用于最新的 Chrome 使用 axios 进行 POST 并向下转译 确切的功能适用于最新的 Chrom
  • Passport.js 中的用户名或密码失败消息

    我使用 Passport js 在 Express 中创建了一个登录名 现在我已经完成了所有设置 当用户名和密码正确时 它将重定向到用户页面 但现在我想在凭据不正确时显示一条消息 现在它会导致一个空白页面 并自动显示 未经授权 消息 这是我
  • Java正则表达式匹配器不匹配

    我的字符串 a href https MYURL browse TEST 53 FOO BAR a Code Pattern pattern Pattern compile browse gt Matcher matcher pattern
  • 有没有办法通过node.js直接读取Google Cloud Datastore存储桶中的JSON文件内容,而无需事先下载?

    我是一名 Python 开发人员 但我现在正在从事的项目的情况迫使我在 Node js 中找到解决方案 我已经检查了文档在类File中 我有这个方法 createReadStream 但谁强迫我在读取之前先下载到本地 然而 我搜索的解决方案
  • 如何在不杀死父进程的情况下杀死所有子进程

    我有一个脚本 它在开始时运行后台进程 然后在最后需要停止该后台进程及其子进程 然后执行一些其他任务等 然后在必要时返回错误代码 我该怎么做呢 我看过几个如何杀死整个树 包括父进程 的示例 例如kill 0 但我希望主脚本继续运行并返回正确的
  • 无法从 Google Compute Engine 元数据服务检索令牌。状态:404

    我正在尝试设置 Cloud SQL 代理作为我的 GKE 集群中的 sidecar 运行 配置是通过 Terraform 完成的 我已经设置了工作负载身份 所需的服务帐户等 从 GKE 集群内启动 cloud sql proxy 时 kub
  • 调整公式数组中的公式

    我有以下公式 我想将其输入到 Formulaarray 中 但由于大小限制而无法这样做 VLOOKUP MIN IF ABS S AT Reports Abhor Ganganagar 1 1550 A B xls 1 1550 A B C
  • 在 Python 中一次选择多个元素迭代列表

    我有一个列表 我想从中迭代一定长度的切片 尽可能最大程度地相互重叠 例如 gt gt gt seq ABCDEF gt gt gt join x for x in zip seq seq 1 seq 2 ABC BCD CDE DEF 换句
  • AWS服务通过校验和验证S3中文件的数据完整性?

    确保 S3 中的文件如其所声称的那样的一种方法是下载该文件 获取其校验和 并将结果与 您期望的校验和进行匹配 AWS 是否提供任何允许这种情况发生的服务without用户需要先下载文件吗 即理想情况下 一个简单的请求 url 提供 S3 文