将 Cloud Storage 与 Ruby 搭配使用

本页面介绍了如何使用 Ruby 版 Google Cloud 客户端库在 Cloud Storage 中执行基本任务,并提供了用于执行这些任务的底层 Ruby 代码。

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

准备工作

  1. 已安装 Ruby 2.3 或更高版本以及 Bundler Ruby gem。

  2. 在终端窗口中,创建并导航到您的工作环境目录:

    mkdir gcs-programmatic-quickstart
    cd gcs-programmatic-quickstart

  3. 克隆包含 Ruby 版 Cloud Storage 客户端库使用示例并附带示例执行 CLI 的 GitHub 存储库:

    git clone https://github.com/GoogleCloudPlatform/ruby-docs-samples.git

  4. 安装 Ruby Storage 客户端库以准备好 Ruby 环境:

    cd ruby-docs-samples/storage
    bundle install

    bundle install 安装示例 Gemfile 中定义的 google-cloud-storage gem。本教程中的命令使用此 gem。

  5. 登录您的 Google 帐号。

    如果您还没有 Google 帐号,请注册新帐号

  6. 设置 GCP Console 项目。

    设置项目

    点击即可执行以下操作:

    • 创建或选择项目。
    • 为该项目启用Cloud Storage API。
    • 创建服务帐号。
    • 下载 JSON 格式的私钥。

    您可以随时在 GCP Console 中查看和管理这些资源。

  7. 将项目设置为本地环境变量:

    Linux 或 MacOS

    export GOOGLE_CLOUD_PROJECT=[PROJECT-ID]

    Windows

    使用 PowerShell:

    $env:GOOGLE_CLOUD_PROJECT=[PROJECT-ID]

    使用命令提示符:

    set GOOGLE_CLOUD_PROJECT=[PROJECT-ID]

创建存储分区

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

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

  1. 使用以下命令创建存储分区并为其指定一个唯一的名称:

    bundle exec ruby buckets.rb create my-awesome-bucket

    此命令使用了名为 my-awesome-bucket 的存储分区。请注意,您必须选择自己的全局唯一存储分区名称。

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

    Created bucket: my-awesome-bucket

    您刚刚创建了一个存储分区,现在可以在其中存储您的内容了!

将对象上传到存储分区

猫咪图片

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

  2. 使用以下命令将图像从保存位置复制到您创建的存储分区中:

    bundle exec ruby files.rb upload my-awesome-bucket ~/Desktop/kitten.png kitten.png

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

    Uploaded kitten.png

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

从存储分区下载对象

  1. 使用以下命令将存储在存储分区中的图像下载到计算机上的某个位置(例如桌面上):

    bundle exec ruby files.rb download my-awesome-bucket kitten.png ~/Desktop/kitten2.png

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

    Downloaded kitten.png

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

复制存储分区中的对象

  1. 使用以下命令创建存储分区中的图像的副本:

    bundle exec ruby files.rb copy my-awesome-bucket kitten.png my-awesome-bucket kitten3.png

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

    kitten.png in my-awesome-bucket copied to kitten3.png in my-awesome-bucket

    您刚刚复制了存储分区中的对象。

列出存储分区的内容

  1. 使用以下命令列出存储分区的内容:

    bundle exec ruby files.rb list my-awesome-bucket

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

    kitten.png
    kitten3.png
    

    你刚刚看到了存储分区中的内容。

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

  1. 使用以下命令向特定电子邮件地址授予控制存储分区中的对象的权限:

    bundle exec ruby iam.rb add_bucket_iam_member my-awesome-bucket roles/storage.objectAdmin user:jane@gmail.com

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

    Added user:jane@gmail.com with role roles/storage.objectAdmin to my-awesome-bucket

    现在,别人可以向您的存储分区写入内容,以及查看该存储分区中的内容。

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

    bundle exec ruby iam.rb remove_bucket_iam_member my-awesome-bucket roles/storage.objectAdmin user:jane@gmail.com

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

    Removed user:jane@gmail.com with role roles/storage.objectAdmin from my-awesome-bucket

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

删除对象

  1. 使用以下命令删除对象:

    bundle exec ruby files.rb delete my-awesome-bucket kitten.png

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

    Deleted kitten.png

    对象的这一副本不再存储在 Cloud Storage 中(尽管名为 kitten3.png 的副本仍然存在)。

清理

为避免系统因本快速入门中使用的资源向您的 GCP 帐号收取费用,请执行以下操作:

  1. 使用以下命令从您的存储分区删除 kitten3.png

    bundle exec ruby files.rb delete my-awesome-bucket kitten3.png
  2. 使用以下命令删除存储分区:

    bundle exec ruby buckets.rb delete my-awesome-bucket

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

    Deleted bucket: my-awesome-bucket

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

后续步骤

此页内容是否有用?请给出您的反馈和评价:

发送以下问题的反馈:

此网页
Cloud Storage
需要帮助?请访问我们的支持页面