本页面简要介绍 Cloud Storage 及其工作原理。
Cloud Storage 是一项用于将您的对象存储在Google Cloud中的服务。对象是由任意格式的文件组成的不可变的数据段。您可以将对象存储在称为存储桶的容器中,还可以选择使用文件夹来整理存储在存储桶中的对象。
所有存储桶都与项目相关联,您可以在组织下对项目进行分组。 Google Cloud 中的每个项目、存储桶、托管式文件夹和对象都属于 Google Cloud中的资源,Compute Engine 实例等也属于资源。
创建项目后,您可以创建 Cloud Storage 存储桶,上传对象至存储桶,以及从存储桶中下载对象。您还可以授予权限,使您的数据可供您指定的主账号访问,或是可供公共互联网上的所有人访问。
Google Cloud 层次结构
下面介绍了 Cloud Storage 结构如何应用于真实用例:
组织:您的公司(名称为 Example Inc.)创建了一个名为
exampleinc.org的组织。 Google Cloud项目:Example Inc. 正在构建多个应用,每个应用与一个项目相关联。每个项目都有自己的一组 Cloud Storage API 及其他资源。
存储桶:每个项目都可以包含多个存储桶,即存储对象的容器。例如,您可以为应用生成的所有图片文件创建一个
photos存储桶以及一个单独的videos存储桶。对象:存储桶包含对象,例如称为
puppy.png的图片。每个存储桶可以包含基本上不限数量的单个对象。文件夹:启用了分层命名空间的存储桶可以包含文件夹。 文件夹可实现用于存储对象的真实文件系统,而不是模拟文件系统。您可以在一次操作中以原子方式重命名文件夹及其中的所有对象。
托管式文件夹:每个存储桶还可以包含托管式文件夹,除了在存储桶上设置的 IAM 权限以外,这些文件夹还可以授予或撤销附加的访问权限。托管式文件夹不使用真正的目录树结构;相反,托管式文件夹是一种仅用于权限检查的资源叠加层。
Cloud Storage 的工具
您可以使用以下工具与 Cloud Storage 进行互动:
控制台:Google Cloud 控制台提供了一个直观界面,可供您在浏览器中管理自己的数据。
Google Cloud CLI:借助 gcloud CLI,您可以使用
gcloud storage命令通过终端与 Cloud Storage 进行交互。客户端库:借助 Cloud Storage 客户端库,您可以使用一种自己偏好的语言(包括 C++、C#、Go、Java、Node.js、PHP、Python 和 Ruby)来管理您的数据。
Terraform:Terraform 是一种基础架构即代码 (IaC) 工具,可用于为 Cloud Storage 预配基础架构。如需了解详情,请参阅使用 Cloud Storage 预配资源。
gRPC:借助 gRPC,您可以与 Cloud Storage 进行交互。gRPC 是一个由 Google 开发的高性能开源通用 RPC 框架,您可以使用它通过协议缓冲区定义服务。
Cloud Storage FUSE:借助 Cloud Storage FUSE,您可以将 Cloud Storage 存储桶装载到本地文件系统。这样,应用就能够使用标准文件系统语义从存储桶读取数据或向存储桶写入数据。
保护数据安全
将对象上传到 Cloud Storage 之后,您可以精细地控制数据保护和共享方式。您可以采用以下方法来保护上传到 Cloud Storage 的数据:
Identity and Access Management:使用 IAM 控制哪些人有权访问您的 Google Cloud 项目中的资源。资源包括 Cloud Storage 存储桶和对象,以及其他 Google Cloud 实体,如 Compute Engine 实例。您可以向主账号授予对存储桶和对象的特定类型的访问权限,例如
update、create或delete。数据加密:默认情况下,Cloud Storage 使用服务器端加密来加密您的数据。您还可以使用补充数据加密选项,例如 客户管理的加密密钥 (CMEK)和 客户提供的加密密钥 (CSEK)。
身份验证:确保访问您的数据的所有人都有正确的凭据。
软删除:通过保留最近删除的对象和存储桶来防止数据因意外或恶意删除而永久丢失。默认情况下,Cloud Storage 会对所有保留期限为七天的存储桶启用软删除。
对象版本控制:如果您启用对象版本控制,则在替换或删除对象的有效版本时,该版本可以保留为非当前版本。
存储桶 IP 过滤:借助存储桶 IP 过滤,您可以根据请求的来源 IP 地址限制对存储桶的访问,并防止特定 IP 地址或虚拟私有云 (VPC) 未经授权访问您的数据。
存储桶锁定:通过指定保留政策控制对象在存储桶中必须保留的时长。
资源名称
每个资源都有一个唯一名称作为标识,就像文件名一样。
存储桶的资源名称采用 projects/_/buckets/BUCKET_NAME 的形式,其中,BUCKET_NAME 是存储桶的 ID。对象的资源名称采用 projects/_/buckets/BUCKET_NAME/objects/OBJECT_NAME 的形式,其中,OBJECT_NAME 是对象的 ID。
附加到资源名称末尾的 #NUMBER 表示对象的特定世代。#0 是最新对象版本的特殊标识符。当对象的名称以字符串结尾时,建议您添加 #0,否则该字符串将被解读为世代号。
快速入门指南
如需了解有关使用 Cloud Storage 的基础知识,请参阅以下指南:
正在寻找其他产品吗?
如果 Cloud Storage 不是适合您的存储解决方案,请详细了解以下存储服务:
Google Cloud Managed Lustre:将数据存储在高性能、全托管式并行文件系统中,该系统针对 AI 和 HPC 工作负载进行了优化。
Google 云端硬盘:存储、管理和共享个人文件。
Cloud Storage for Firebase:管理移动应用的数据。
永久性磁盘:将块存储添加到您的 Compute Engine 虚拟机。
Filestore:添加文件存储空间,可用于对 GKE 集群进行多写入者访问。
探索 Google提供的更多存储服务。
后续步骤
- 通过Google Cloud 控制台或 Google Cloud CLI 了解 Cloud Storage 基础知识。
- 试用使用 Cloud Storage 的Google Cloud 快速起步解决方案。
- 开始使用客户端库。
- 使用 Storage Transfer Service 将在线数据快速导入到 Cloud Storage 或在 Cloud Storage 存储桶之间导入。