Cloud Storage 产品概览

本页面简要介绍 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 的图片。

  • 代管式文件夹:每个存储桶还可以包含多个代管式文件夹,对于这些文件夹,除了授予整个存储桶的访问权限以外,还可以授予附加的访问权限。 此项附加的访问权限适用于前缀与代管式文件夹名称匹配的对象。例如,您可以创建一个 animals/ 代管式文件夹,以便为指定用户授予对 animals/puppy.pnganimals/kitten.png 等对象的附加访问权限。

适用于 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)来管理您的数据。

  • REST API:使用 JSONXML API 管理您的数据。

  • TerraformTerraform 是一种基础架构即代码 (IaC) 工具,可用于为 Cloud Storage 预配基础架构。

  • 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 实例。您可以向主账号授予对存储桶和对象的特定类型的访问权限,例如 updatecreatedelete

  • 数据加密:默认情况下,Cloud Storage 使用服务器端加密来加密您的数据。您还可以使用补充数据加密选项,例如 客户管理的加密密钥 (CMEK)客户提供的加密密钥 (CSEK)

  • 身份验证:确保访问您的数据的所有人都有正确的凭据

  • 存储桶锁定:通过指定保留政策控制对象在存储桶中必须保留的时长。

  • 软删除:通过保留最近删除的对象来防止数据因意外或恶意删除而永久丢失。默认情况下,Cloud Storage 会对所有保留期限为七天的存储桶启用软删除

  • 对象版本控制:如果您启用对象版本控制,则在替换或删除对象的有效版本时,该版本可以保留为非当前版本。

资源名称

每个资源都有一个唯一名称作为标识,就像文件名一样。 存储桶的资源名称采用 projects/_/buckets/BUCKET_NAME 的形式,其中,BUCKET_NAME 是存储桶的 ID。对象的资源名称采用 projects/_/buckets/BUCKET_NAME/objects/OBJECT_NAME 的形式,其中,OBJECT_NAME 是对象的 ID。

附加到资源名称末尾的 #NUMBER 表示对象的特定世代。#0 是最新对象版本的特殊标识符。当对象的名称以字符串结尾时,建议您添加 #0,否则该字符串将被解读为世代号。

快速入门指南

如需了解有关使用 Cloud Storage 的基础知识,请参阅以下指南:

后续步骤