滚动新闻 →
门锁应该怎么选择 贝佐斯自掏280亿投太空公司 熬过25年首次融资 AI 集群性能出现下降时应该从哪里开始排查,建立一套完整的诊断路径 中国又见随地倒 中青年无征兆猝死增多 Google Cloud Storage 和本地文件系统有什么区别,开发人员应该怎样理解对象存储 日本企业网站接连遭黑客入侵 大批个资外泄 FBI追缉中共黑客 再袭中国永信至诚科技集团 国务院《人口贩运报告》关注东南亚诈骗园区 国土安全部长:ICE执法保卫美国社区安全 SaaS 系统如何接收第三方 Webhook,验证来源是非常重要的一步 笔记本电脑开机没有画面,外接显示器可以帮助判断哪些硬件故障 尊界事件背后 国产豪车制动踏板总成报价不过百元 34岁前央视摄影师赴泰国后失联 疑被绑架至电诈园 Windows 11 下载文件夹太乱怎么办?建立高效文件管理习惯 中共体制性剥夺 奴工理论催生怨气产品 中资美国工厂曝黑幕 前员工揭骇人工作环境 PHP Session 怎么工作?登录系统中的用户状态如何保存 俄罗斯宣布解除防疫措施 死者母亲公开质疑 中国经济持续下行 出口企业主叹生存艰难 10月9日维权动态 江苏访民许云华欲进京维权 遭限制人身自由 又一豆腐渣 江苏一大桥桥墩钢筋大面积裸露 TP-Link涉隐瞒与中共关联 被美四州起诉 TikTok被控安全功能虚假 2.8万用户不知被测 冻结资产切断资源 美国全面制裁国际刑事法院 2026诺贝尔和平奖 南非法官皮莱获得 张婉莹同伙曝光 关系匪浅 FBI列重点关注 双十国庆前中共骚扰金门 4海警船遭驱离 飓风一天恐升四级 墨西哥旅游区紧急撤离 川普成立特别调查组 美联储理事库克面临调查 中共离岸追税 中国富豪急寻资金转移地 美暂停微软等公司绿卡劳工计划 打击签证欺诈 美国查封中共黑客工具 七国发布安全公告 王维的山水诗为什么如此安静 俄罗斯疑爆“肺鼠疫”引中国民众恐慌 15经济体联合声明 携手应对中国产能过剩 川普宣布选前不打伊朗 中东部署仍在增加中 悬赏千万追捕黑客 美重拳打击中共网攻 五谷在传统中医饮食文化中的地位 专家:中共正利用美资金与媒体进行内部渗透 德国前情报局长被捕 德媒:与中共前少将长期联系

Google Cloud Storage 和本地文件系统有什么区别,开发人员应该怎样理解对象存储

发布时间: 2026-10-09 13:24:01    最后更新: 2026-10-09 14:34:22    阅读:5  约9 分钟阅读     

Google Cloud Storage 和本地文件系统有什么区别,开发人员应该怎样理解对象存储
图片说明:示意图   图片来源:Public Domain(公有领域)
很多开发人员第一次接触Google Cloud Storage时,最容易犯的错误,就是把它想象成一块放在云端的硬盘。于是代码里出现了“打开文件、写入、修改、移动、关闭”这样的本地文件系统思维,然后发现很多操作并不像Windows或Linux磁盘那样工作。真正理解GCS,关键不是记住几个API,而是先改变一个概念:本地文件系统管理的是文件和目录,而对象存储管理的是对象以及对象的名称、数据和元数据。

在传统Linux或Windows文件系统中,一个文件通常存在于明确的目录层级里。例如/data/project/report.pdf,系统不仅知道这个文件叫什么,还知道它属于project目录,而目录本身也是文件系统中的一种结构。应用程序可以通过open、read、write、rename等文件系统操作直接修改文件内容。底层还涉及inode、权限、文件锁、缓存以及目录结构等机制。

Google Cloud Storage的标准Flat Namespace则不同。一个对象实际上由bucket中的对象名称、数据和元数据组成。例如对象名称可以叫project/2026/report.pdf。这里的斜杠看起来像Linux路径,但在Flat Namespace中,它主要是对象名称的一部分,Cloud Storage控制台和命令行工具可以把斜杠解释成类似文件夹的视觉结构。也就是说,传统Flat Namespace里并不存在一个必须先创建的project目录,然后再把report.pdf放进去。(cloud.google.com)

不过,现在再简单地说“GCS没有真正的文件夹”也已经不完整。Google Cloud Storage提供Hierarchical Namespace,可以让bucket拥有真正的文件夹结构和目录语义,包括文件夹级操作以及原子性的文件夹重命名等能力。这项功能尤其针对数据密集型AI、分析和文件型工作负载。需要注意的是,Hierarchical Namespace必须在创建bucket时启用,创建之后不能再把一个普通bucket直接切换成这种模式。(cloud.google.com)

理解这一点以后,开发人员就容易明白为什么对象存储通常不应该被当成POSIX文件系统使用。你当然可以通过工具把GCS挂载成类似文件系统的访问方式,但这并不意味着底层已经变成了一块普通本地磁盘。应用如果大量依赖频繁rename、append、随机修改文件中间部分等传统文件操作,就应该认真评估这种架构是否适合。

对象存储真正擅长的是完整对象的存取。一个视频、备份文件、图片、日志归档、机器学习训练数据或者大型压缩包,可以作为一个对象保存。应用通过API读取、写入、删除或者更新对象及其元数据。对于大型对象,Google Cloud Storage还提供Resumable Upload,可以在网络中断后继续上传,而不必从头重新发送整个文件。Google官方文档也把Resumable Upload列为多数应用的大文件上传选择之一。(cloud.google.com)

如果文件非常大,还可以采用并行上传策略。例如Parallel Composite Upload可以把一个文件分成多个组件并行上传,最后通过compose操作重新组合成一个对象。这样做在网络和磁盘能够提供足够吞吐时可能明显缩短上传时间。不过它会产生临时对象,并且最终对象的校验方式等细节与普通对象不同,因此不能简单理解成“把文件切成几份就一定更快”。(cloud.google.com)

这里也需要纠正一个非常常见的说法:GCS并不是传统意义上的“最终一致性对象存储”。目前Cloud Storage对对象写入后读取、对象元数据更新、对象删除以及对象列表等核心操作提供强一致性。一个对象成功写入以后,成功响应返回后即可读取;删除成功以后,对象读取会立即得到404。对象列表同样具有强一致性。(cloud.google.com)

这对于开发人员非常重要。以前设计某些对象存储应用时,程序员可能需要假设“我刚上传的对象暂时可能在列表里看不到”。对于GCS核心对象操作,这种旧式思维已经不适用。当然,公开对象如果经过缓存,缓存本身仍可能在缓存生命周期内返回旧版本,所以“GCS强一致性”和“所有缓存立即刷新”是两个不同的问题。(cloud.google.com)

GCS还有一个和本地文件系统完全不同的思维方式,就是扩展能力来自服务端,而不是用户自己购买更大的磁盘阵列。Cloud Storage会随着bucket请求量增长自动扩展IO能力,并通过后端服务器分散请求负载。不过,当请求量突然快速增加时,系统可能需要一段时间重新分配负载,因此官方建议逐渐提高请求速率,以减少临时延迟和错误。(cloud.google.com)

因此,GCS的“性能好”也不能简单理解成任何情况下都比本地NVMe快。如果应用需要每秒进行大量极低延迟的随机读写,本地NVMe、数据库或者专门的分布式文件系统可能更合适。对象存储真正的优势在于海量数据、弹性扩展、持久化、跨区域数据布局以及通过API让大量计算节点同时访问数据。

权限模型也是两者思维差异非常明显的地方。Linux文件系统通常围绕用户、用户组、目录权限和ACL建立访问控制,而GCS则使用Google Cloud IAM、bucket级权限以及managed folders等机制控制访问范围。在启用了managed folder的情况下,还可以针对某个对象名称前缀范围授予IAM权限。(cloud.google.com)

这意味着开发人员不应该把“文件路径”仅仅看成存储位置。对象名称本身可能成为权限设计、生命周期管理、数据处理和审计策略的一部分。例如把训练数据放在datasets/、模型文件放在models/、日志放在logs/,然后结合IAM或managed folders设计访问权限,比把所有数据扔进一个巨大的bucket再依赖应用程序自己判断权限更加容易管理。

本地文件系统还有一个非常重要的能力,就是原地修改。程序可以打开一个几GB文件,在其中某个位置修改几个字节,然后关闭文件。对象存储的基本思维则不同。很多情况下,如果对象内容发生改变,应用更适合重新上传或者生成一个新的对象版本,而不是把它当成一块可以任意seek和overwrite的磁盘区域。因此数据库、操作系统临时目录以及需要大量随机写入的应用,并不能因为GCS容量巨大就直接把数据库文件搬进去。

对象存储特别适合另一类数据:数据本身通常以完整对象形式存在,而且生命周期较长。例如照片、视频、网站静态资源、备份、软件安装包、日志归档、数据湖中的Parquet文件、机器学习训练数据以及模型检查点。这些数据往往需要大量并发读取,却不需要像数据库那样不停地修改文件中间的某几个字节。

AI和数据分析领域尤其能体现这种区别。训练集可以放在GCS中,计算节点按对象读取数据;训练完成以后,模型checkpoint可以作为对象保存;不同GPU节点和不同计算实例可以从统一的数据源获取文件。真正需要优化的不是“怎样把GCS变成Linux硬盘”,而是对象大小、数据格式、并发请求、缓存、网络带宽、读取模式以及计算与存储之间的位置关系。

因此,开发人员理解GCS最重要的一步,是停止问“这个云硬盘的目录在哪里”,开始问“我的数据对象是什么,它如何命名,谁需要访问它,它多久被访问一次,它是完整读取还是随机读取,它如何上传和下载,它需要什么一致性和备份策略”。

本地文件系统解决的是计算机如何组织和修改文件;对象存储解决的是海量数据如何以对象形式被可靠地保存和访问。两者并不是谁淘汰谁,而是针对不同问题设计出来的两种存储模型。真正成熟的云架构,也往往不是把所有东西塞进GCS,而是让数据库、缓存、本地NVMe、分布式文件系统和对象存储各自承担最适合自己的工作。理解这一点之后,开发人员面对云存储时就不会再把“一个bucket”想象成一块超大的C盘,而会开始按照数据生命周期、访问模式和系统架构来设计存储。

喜欢这篇报道?

使用下面的功能,方便以后继续阅读和分享 MNewsTV

设为 Google 新闻首选来源 让 Google 新闻优先显示 MNewsTV 的最新报道 ›
★ 我的收藏 查看已经收藏的文章
关于文章收藏 收藏不需要注册帐号,收藏信息仅保存在当前浏览器中。 删除收藏请进入「我的收藏」进行管理。
分享这篇报道

捐助(Paypal): https://www.paypal.me/observeccp
订阅中国观察电报 Telegram : https://t.me/s/ObserveCCP