更新文件时从 AWS S3 下载

2023-12-31

这似乎是一个非常基本的问题,但如果我从 S3 下载文件,同时另一个进程正在更新该文件,我是否需要担心获得不完整的文件?

示例:200MB 的 CSV 文件。用户 A 开始以 1Mbps 的速度更新文件,其中包含 200MB 的新内容。 16秒后,用户B开始以200Mbps的速度下载文件。用户 B 是否获得了全部 200MB 的原始文件,或者用户 B 是否获得了大约 2MB 的用户 A 的更改,仅此而已?


用户 B 获得原始文件的全部 200MB。

原因如下:

PUTS3 上的操作是原子的。从技术上讲,不存在“修改”对象这样的事情。当一个对象被覆盖时实际发生的事情是该对象被覆盖replaced与具有相同密钥的另一个对象。但是,直到新的(覆盖)对象完整上传并成功上传后,原始对象才真正被替换……即使如此,被覆盖的对象在技术上还没有“消失”——它只是在存储桶的索引中被替换,以便将来的请求将由新对象提供服务。

(提供新对象实际上被记录为不能保证总是立即发生。与立即可供下载的新对象的上传相比,现有对象的覆盖是最终一致,这意味着有可能(无论可能性如何)在上传对象后的短时间内,旧副本仍可用于后续请求)。

但是,当您覆盖对象时,并且存储桶上未启用版本控制,旧对象和新对象实际上是独立存储在 S3 中,尽管密钥相同。旧对象现在不再被存储桶的索引引用,因此您不再需要为它的存储付费,并且它很快就会从 S3 的后备存储中清除。实际上并没有记录这种情况发生了多久......但是(tl;dr)覆盖当前正在下载的对象不应导致任何意外的副作用。

对单个密钥的更新是原子的。例如,如果您 PUT 到现有密钥,后续读取可能会返回旧数据或更新的数据,但永远不会写入损坏或部分数据。

http://docs.aws.amazon.com/AmazonS3/latest/dev/Introduction.html#ConsistencyModel http://docs.aws.amazon.com/AmazonS3/latest/dev/Introduction.html#ConsistencyModel

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

更新文件时从 AWS S3 下载 的相关文章

  • AWS lambda 是否保证将函数更新到新版本时不会出现停机?

    默认情况下 AWS 使用LATEST更新了最新 lambda 版本的别名 我假设执行以下步骤 Now LATEST别名点版本 5 用户部署新版本的 lambda 在部署新版本时 LATEST别名仍然指向版本 5 部署完成后 Lambda 只
  • 使用连接池后如何处理过多的并发连接?

    Scenario 假设您有一个拥有大量流量的网站或应用程序 即使使用数据库连接池 性能也会受到真正的打击 站点 应用程序甚至可能崩溃 因为并发连接太多 Question 人们有什么选择来处理这个问题 我的想法 我在想有这个问题的人可以创建多
  • 如何使用配置文件 (.ebextensions) 在 AWS Elastic Beanstalk 上安装 PHP IMAP 扩展?

    有谁知道如何使用配置文件 ebextensions 在 AWS Elastic Beanstalk 上安装和启用 PHP IMAP 扩展 我使用的是 64 位 Amazon Linux 2017 03 v2 4 0 运行 PHP 7 0 1
  • 在 Java EE 中手动启动新线程安全吗?

    对于在会话范围内的 JSF 托管 bean 中生成线程是否安全 我找不到明确的答案 线程需要调用无状态 EJB 实例 依赖注入到托管 bean 上的方法 背景是我们有一份需要很长时间才能生成的报告 由于我们无法更改服务器设置 这导致 HTT
  • 更新项目时,NUMBER_VALUE 无法转换为字符串

    我在 DynamoDB 上遇到了这个奇怪的问题 我似乎无法更新项目 这是我的命令 TableName UserTable Key UID S h4XJj3YRxZiF7TDcGkxAhc UpdateExpression SET numRa
  • 如何使用 jq 从多个嵌套数组中提取键

    SETUP 我试图弄清楚 jq 过滤器是如何工作的 但在找出嵌套数组时遇到了困难 使用下面的数据我无法做出平的 5 键输出 我可以得到 1 个键和 4 个空值 或者 4 个键和 1 个空值 但不能得到所有 5 个键 1 个键 4 个空值 R
  • 如何授予轮换 Lambda 对 AWS Secrets Manager 的访问权限

    使用无服务器框架 我正在尝试构建定期轮换秘密的 Lambda 函数 https docs aws amazon com secretsmanager latest userguide rotating secrets html存储在 AWS
  • 从 android 简单上传到 S3

    我在网上搜索了从 android 上传简单文件到 s3 的方法 但找不到任何有效的方法 我认为这是因为缺乏具体步骤 1 https mobile awsblog com post Tx1V588RKX5XPQB TransferManage
  • EC2专用实例是否共享RAM带宽?

    如果我创建一个专用实例并且它在多芯片服务器上启动 它是否共享其自己的 CPU 的 RAM 带宽 如果邻居运行一些消耗内存带宽的任务会发生什么 它会影响我的实例吗 这在共享实例上怎么样 RAM有哪几种寻址方式 仅在其自己的 numa 节点上还
  • Laravel S3 检索视频以流式传输

    我通过 Laravel 应用程序将视频存储到 Amazon S3 效果很好 但我无法 流式传输 它们 这是例如 URL https website com video 342 qt api token a5a18c9f f5f6 5d66
  • 对象锁定私有类成员 - 最佳实践? (爪哇)

    I asked 类似的问题 https stackoverflow com questions 10548066 multiple object locks in java前几天 但对回复不满意 主要是因为我提供的代码存在一些人们关注的问题
  • Amazon s3 – 403 禁止使用正确的存储桶策略

    我正在尝试使用以下存储桶策略 使存储在 s3 存储桶中的所有图像可供公开读取 Id Policy1380877762691 Statement Sid Stmt1380877761162 Action s3 GetObject Effect
  • 是否有一种更简单的方法可以并行运行命令,同时在 Windows PowerShell 中保持高效?

    此自我回答旨在为那些受困于 Windows PowerShell 并由于公司政策等原因而无法安装模块的用户提供一种简单且高效的并行替代方案 在 Windows PowerShell 中 built in可用的替代方案local并行调用是St
  • AWS Route 53 - 公共子域无法公开访问?

    我已购买域名company com并创建公共子域sales company com 路由53中的公共托管区域 我将子域映射 创建 A 记录 到内部应用程序负载均衡器 ALB 即该 ALB 只能在我的公司网络内访问 我的理解是公共子域可以映射
  • 如何恢复丢失的aws服务器实例的私钥?

    我丢失了 AWS 实例的私钥 我在控制台面板中搜索了该选项 恐怕你可能不走运 当您启动实例时 您应该指定密钥的名称 您计划用于连接到实例的对 如果你不指定 启动实例时现有密钥对的名称 您 将无法连接到实例 当您连接到 例如 您必须指定与密钥
  • AWS S3从本地主机批量上传php错误

    我在尝试着批次 散装从本地主机 xampp 上传到我的S3 bucket 它似乎适用于大约 6 个项目 然后我收到一条错误消息 cURL 错误说Failed sending network data from http curl haxx
  • Amazon S3 - 一个对象的多个键

    我有一个 S3 存储桶 其中包含超过 1 亿个对象 每个对象像往常一样都有一个唯一的密钥 我想知道是否有办法为其中一些对象分配另一个键 像这样的东西 键1 gt 对象1 键2 gt 对象2 Key3 gt Object2 我想添加这个 我在
  • 如何在亚马逊AWS上加载ena驱动程序?

    我正在尝试在 Ubuntu VM 上加载 ena 驱动程序 根据文档 我的虚拟机有vif低性能驱动程序 ubuntu ip 172 31 14 190 ethtool i eth0 driver vif version firmware v
  • 如何在 Lambda 中将对象上传到 S3?

    似乎无法将对象上传到 Lambda 中的 S3 本地一切正常 日志中没有错误可以显示出了什么问题 代码如下 console log Loading function var AWS require aws sdk var s3 new AW
  • JavaScript 可以检测用户的浏览器是否支持 gzip 吗?

    我可以使用 JavaScript 来检测用户的浏览器是否支持 gzip 压缩内容 客户端 而不是 Node js 或类似内容 我正在尝试支持以下边缘情况 有很多可能的文件可以加载到特定的 Web 应用程序上 最好在应用程序运行时根据需要加载

随机推荐