使用 gcloud 工具发现对象存储空间

本页面介绍了如何使用 gcloud 命令行工具执行 Cloud Storage 中的基本任务。

Cloud Storage 将按您使用的资源向您收费。在本快速入门中,所使用 Cloud Storage 资源的价值通常不到 $0.01 USD。

准备工作

  1. 登录您的 Google Cloud 账号。如果您是 Google Cloud 新手,请创建一个账号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
  2. 在 Google Cloud Console 中的项目选择器页面上,点击创建项目以开始创建新的 Google Cloud 项目。

    转到“项目选择器”

  3. 确保您的 Google Cloud 项目已启用结算功能

  4. 安装 Google Cloud CLI。
  5. 如需初始化 gcloud CLI,请运行以下命令:

    gcloud init
  6. 在 Google Cloud Console 中的项目选择器页面上,点击创建项目以开始创建新的 Google Cloud 项目。

    转到“项目选择器”

  7. 确保您的 Google Cloud 项目已启用结算功能

  8. 安装 Google Cloud CLI。
  9. 如需初始化 gcloud CLI,请运行以下命令:

    gcloud init

创建存储桶

存储桶是 Cloud Storage 中用于存放数据的基本容器。

要创建存储桶,请执行以下操作:

  1. 打开一个终端窗口。
  2. 使用 gcloud storage buckets create 命令创建存储桶并为其指定一个唯一的名称:

    gcloud storage buckets create gs://my-awesome-bucket/ --uniform-bucket-level-access

    在上述命令中,使用了名为“my-awesome-bucket”的存储桶。您必须选择您自己的全局唯一存储桶名称。

    如果成功,此命令会返回以下内容:

    Creating gs://my-awesome-bucket/...

您刚刚创建了一个存储桶,现在可以在其中存储您的数据了!

Creating gs://my-awesome-bucket/...
ServiceException: 409 Bucket my-awesome-bucket already exists.

请使用其他存储桶名称重试。

将对象上传到存储桶

要上传到存储桶的猫咪图片。

  1. 右键点击上面的图片并将其保存到计算机上的某个位置(例如桌面上)。

  2. 使用 gcloud storage cp 命令将该图片从保存位置复制到您创建的存储桶中:

    gcloud storage cp Desktop/kitten.png gs://my-awesome-bucket

    如果成功,此命令会返回以下内容:

    Copying file://Desktop/kitten.png [Content-Type=image/png]...
    Uploading   gs://my-awesome-bucket/kitten.png:       0 B/164.3 KiB
    Uploading   gs://my-awesome-bucket/kitten.png:       164.3 KiB/164.3 KiB

    您刚刚在存储桶中存储了一个对象。

从存储桶下载对象

  1. 使用 gcloud storage cp 命令将存储在存储桶中的图片下载到计算机上的某个位置(例如桌面上):

    gcloud storage cp gs://my-awesome-bucket/kitten.png Desktop/kitten2.png

    如果成功,此命令会返回以下内容:

    Copying gs://my-awesome-bucket/kitten.png...
    Downloading file://Desktop/kitten2.png:               0 B/164.3 KiB
    Downloading file://Desktop/kitten2.png:               164.3 KiB/164.3 KiB

    您刚刚从存储桶中下载了某个内容。

将对象复制到存储桶中的文件夹

  1. 使用 gcloud storage cp 命令创建文件夹并将该图片复制到该文件夹中:

    gcloud storage cp gs://my-awesome-bucket/kitten.png gs://my-awesome-bucket/just-a-folder/kitten3.png

    如果成功,此命令会返回以下内容:

    Copying gs://my-awesome-bucket/kitten.png [Content-Type=image/png]...
    Copying     ...my-awesome-bucket/just-a-folder/kitten3.png: 164.3 KiB/164.3 KiB

    您刚刚将图片复制到存储桶内的新文件夹中。

列出存储桶或文件夹的内容

  1. 使用 gcloud storage ls 命令列出存储桶顶层的内容:

    gcloud storage ls gs://my-awesome-bucket

    如果成功,该命令将返回类似于以下内容的消息:

    gs://my-awesome-bucket/kitten.png
    gs://my-awesome-bucket/just-a-folder/

    您刚刚看到了存储桶顶层的内容。

列出对象的详细信息

  1. 使用 gcloud storage ls 命令和 --long 标志来获取图片之一的一些相关详情:

    gcloud storage ls gs://my-awesome-bucket/kitten.png --long

    如果成功,该命令将返回类似于以下内容的消息:

    2638  2016-02-26T23:05:14Z  gs://my-awesome-bucket/kitten.png
    TOTAL: 1 objects, 168243.2 bytes (164.3 KiB)

    您刚刚获得了有关图片大小和创建日期的信息。

将对象设置为可公开访问

  1. 使用 gcloud storage buckets add-iam-policy-binding 命令向所有用户授予读取您存储桶中存储的图片的权限:

    gcloud storage buckets add-iam-policy-binding gs://my-awesome-bucket --member=allUsers --role=roles/storage.objectViewer

    如果响应包含以下内容,则表示此命令已成功执行:

    bindings:
      - members:
        - allUsers
        role: roles/storage.objectViewer
    

    现在,任何人都可以获取您的图片。

  2. 如需移除此访问权限,请使用以下命令:

    gcloud storage buckets remove-iam-policy-binding gs://my-awesome-bucket --member=allUsers --role=roles/storage.objectViewer

    如果未返回错误,则表示此命令已成功执行。

    您已移除对您存储桶中图片的公开访问权限。

向某人授予您的存储桶的访问权限

  1. 使用 gcloud storage buckets add-iam-policy-binding 命令向特定电子邮件地址授予向存储桶添加对象的权限:

    gcloud storage buckets add-iam-policy-binding gs://my-awesome-bucket --member=user:jane@gmail.com --role=roles/storage.objectCreator

    如果响应包含以下内容,则表示此命令已成功执行:

    bindings:
      - members:
        - user:jane@gmail.com
        role: roles/storage.objectCreator
    

    现在,其他人就可以向您的存储桶添加内容了。

  2. 要移除此权限,请使用以下命令:

    gcloud storage buckets remove-iam-policy-binding gs://my-awesome-bucket --member=user:jane@gmail.com --role=roles/storage.objectCreator

    如果未返回错误,则表示此命令已成功执行。

    您已移除用户在此存储桶上的访问权限。

删除对象

  1. 使用 gcloud storage rm 命令删除图片之一:

    gcloud storage rm gs://my-awesome-bucket/kitten.png

    如果成功,此命令会返回以下内容:

    Removing gs://my-awesome-bucket/kitten.png...

    图片的这一副本不再存储在 Cloud Storage 中(尽管您在文件夹 just-a-folder/ 中创建的副本仍然存在)。

清理

为避免因本页中使用的资源导致您的 Google Cloud 账号产生费用,请按照以下步骤操作。

  1. 打开终端窗口(如果尚未打开)。
  2. 使用带有 --recursive 标志的 gcloud storage rm 命令删除存储桶以及其内的所有内容:

    gcloud storage rm gs://my-awesome-bucket --recursive

    如果成功,该命令将返回类似于以下内容的消息:

    Removing gs://my-awesome-bucket/just-a-folder/cloud-storage.logo.png#1456530077282000...
    Removing gs://my-awesome-bucket/...

    您的存储桶及其内容将被删除。

后续步骤