安装 gsutil

本页面介绍了 gsutil 的安装和设置,该工具可让您从命令行使用 HTTPS 访问 Cloud Storage。

只需安装 gsutil,您即可获得公共数据的读取和/或写入权限。向 Cloud Storage 服务进行身份验证,您可以获得与您共享的受保护数据的读取和/或写入权限。通过启用结算功能,您可以创建和管理自己的存储分区。

系统要求

  • gsutil 工具在 Linux/Unix、Mac OS、Windows(XP 或更高版本)上运行。

  • 如果您计划使用复合对象,则需要安装已编译的 crcmod。在 Windows 系统中,已编译的 crcmod 仅适用于 32 位 Python。

安装 gsutil

官方支持的 gsutil 安装和更新方法已包含在 Google Cloud SDK 中。

将 gsutil 作为 Google Cloud SDK 的一部分进行安装

按照操作系统的说明操作,将 gsutil 作为 Google Cloud SDK 的一部分进行安装:

Linux
  1. 在命令提示符处输入以下内容:
    curl https://sdk.cloud.google.com | bash
  2. 出现提示时,请在文件系统上选择一个位置(通常是您的主目录),以便在该位置下创建 google-cloud-sdk 子目录。
  3. 如果您想要将 Cloud SDK 命令行工具添加到 PATH 并启用命令补全功能,请在出现提示时回答 y
  4. 重启 shell:
    exec -l $SHELL
  5. 运行 gcloud init 以初始化 gcloud 环境:
    gcloud init
Debian/Ubuntu

软件包内容

对于 Debian 和 Ubuntu 系统,可以通过软件包格式的 Cloud SDK 进行安装。此软件包仅包含 gcloudgcloud alphagcloud betagsutilbq 命令,而不包括 kubectl 或使用 gcloud 命令部署应用所必需的 App Engine 扩展程序。如果您需要这些组件,则必须按照本部分稍后所述的方法另行安装。

前提条件

在安装 Cloud SDK 之前,请确保您的操作系统是下面某一项:

安装
  1. 添加 Cloud SDK 分发 URI 作为软件包源:
    echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] https://packages.cloud.google.com/apt cloud-sdk main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list
    请确保您已安装 apt-transport-https
    sudo apt-get install apt-transport-https ca-certificates gnupg

    问题排查提示:如果您的发行版不支持 signed-by 选项,请改为运行以下命令:

    echo "deb https://packages.cloud.google.com/apt cloud-sdk main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list

    问题排查提示:请确保您没有重复的 cloud-sdk 代码库条目。

  2. 导入 Google Cloud 公钥:
    curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key --keyring /usr/share/keyrings/cloud.google.gpg add -

    问题排查提示:如果您由于密钥过期而无法获取最新更新,请获取最新的 apt-get.gpg 密钥文件

    问题排查提示:如果您发行版的 apt-key 命令不支持 --keyring 参数,请改为运行以下命令:

    curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -

  3. 更新并安装 Cloud SDK:
    sudo apt-get update && sudo apt-get install google-cloud-sdk
    如需了解其他 apt-get 选项(例如停用提示或试运行),请参阅 apt-get 手册页面

    Docker 提示:如果在 Docker 映像中安装 Cloud SDK,请改用单个 RUN 步骤:

    RUN echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] http://packages.cloud.google.com/apt cloud-sdk main" | tee -a /etc/apt/sources.list.d/google-cloud-sdk.list && curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key --keyring /usr/share/keyrings/cloud.google.gpg  add - && apt-get update -y && apt-get install google-cloud-sdk -y
          

  4. 您可以选择安装以下任何其他组件
    • google-cloud-sdk-app-engine-python
    • google-cloud-sdk-app-engine-python-extras
    • google-cloud-sdk-app-engine-java
    • google-cloud-sdk-app-engine-go
    • google-cloud-sdk-bigtable-emulator
    • google-cloud-sdk-cbt
    • google-cloud-sdk-cloud-build-local
    • google-cloud-sdk-datalab
    • google-cloud-sdk-datastore-emulator
    • google-cloud-sdk-firestore-emulator
    • google-cloud-sdk-pubsub-emulator
    • kubectl

    例如,google-cloud-sdk-app-engine-java 组件可以按以下方式安装:

    sudo apt-get install google-cloud-sdk-app-engine-java
  5. 运行 gcloud init 以开始执行初始化操作:
    gcloud init

降级 Cloud SDK 版本

如果您想还原到特定版本的 Cloud SDK(其中“VERSION”为“123.0.0”形式),请运行以下命令:sudo apt-get update && sudo apt-get install google-cloud-sdk=123.0.0-0

macOS
  1. 在命令提示符处输入以下内容:
    curl https://sdk.cloud.google.com | bash
  2. 出现提示时,请在文件系统上选择一个位置(通常是您的主目录),以便在该位置下创建 google-cloud-sdk 子目录。
  3. 如果您想要将 Cloud SDK 命令行工具添加到 PATH 并启用命令补全功能,请在出现提示时回答 y
  4. 重启 shell:
    exec -l $SHELL
  5. 运行 gcloud init 以初始化 gcloud 环境:
    gcloud init
Windows
  1. 下载 Cloud SDK 安装程序

    或者,打开 PowerShell 终端,然后运行以下 PowerShell 命令。

    (New-Object Net.WebClient).DownloadFile("https://dl.google.com/dl/cloudsdk/channels/rapid/GoogleCloudSDKInstaller.exe", "$env:Temp\GoogleCloudSDKInstaller.exe")
    
    & $env:Temp\GoogleCloudSDKInstaller.exe
          

  2. 启动安装程序并按提示操作。安装程序已经过 Google LLC 签名。

    如果您要启用屏幕阅读器模式,请选择启用屏幕阅读器模式 (Turn on screen reader mode) 选项,以畅享更精简的屏幕阅读器体验。如需详细了解 Cloud SDK 屏幕阅读器体验,请参阅无障碍功能指南

    Windows 中“Google Cloud SDK 安装程序”(Google Cloud SDK Setup) 的“欢迎使用”对话框,其中包含用于启用屏幕阅读器模式的复选框

  3. Cloud SDK 要求安装 Python。受支持的版本有 3.5 到 3.8 版本,以及 2.7.9 或更高版本。

    安装程序将安装所有必需的依赖项(包括所需的 Python 版本)。 虽然 Cloud SDK 目前默认使用 Python 3,但您可以根据需要通过取消选中“安装捆绑的 Python”选项来使用已安装的 Python。

  4. 安装完成后,安装程序会提供几个选项:

    Windows 安装程序提示

    确保选中以下选项:

    • 启动 Google Cloud SDK Shell (Start Google Cloud SDK Shell)
    • 运行 gcloud init (Run gcloud init)

    安装程序会启动终端窗口并运行 gcloud init 命令。

  5. 默认安装不包括使用 gcloud 命令部署应用所必需的 App Engine 扩展程序。这些组件可通过 Cloud SDK 组件管理器进行安装。
问题排查提示
  • 如果 Cloud SDK 在安装版本 274.0.0 后无法运行,请参阅此跟踪 bug,了解最新的解决方法。
  • 如果由于 find 命令未被识别而导致安装失败,请确保您的“PATH”环境变量设置为将包含“find”的文件夹(通常为 C:\WINDOWS\system32;)包括在内。
  • 如果您刚刚卸载了 Cloud SDK,则需要重新启动系统才能再次安装 Cloud SDK。

使用 components update 命令执行更新操作:gcloud components update

如需了解如何使用 gsutil,请参阅《快速入门:使用 gsutil 工具》练习,或运行 gsutil help

其他安装方法

您可以通过多种方法以独立产品的形式安装 gsutil。如果您不需要 Cloud SDK 附带的任何其他组件,或者您使用 PyPI 管理软件包,可能更愿意使用这些方法。

如果要以独立版的形式安装 gsutil,作为额外的系统要求,您必须在计算机上安装 Python。gsutil 正式支持次要版本 2.7.x 到 3.7.x。默认情况下,Python 会安装在大多数 Linux 和 macOS 发行版上,但不会安装在 Windows 上;您必须首先安装 Python,然后才能在 Windows 上运行 gsutil。

展开所需的方法以查看相关说明。

设置凭据以访问受保护的数据

安装 gsutil 后,您可以下载和访问可公开访问的对象,但是,若要访问受保护的数据或向受保护的存储分区写入数据,您需要设置凭据(身份验证)。例如,如果其他人创建了 Cloud Storage 帐号并上传了只有您或其他特定人员可访问的数据,您必须向 Cloud Storage 服务设置凭据才能访问此数据。

如果您将 gsutil 作为 Google Cloud SDK 的一部分进行安装,请按照这些说明操作。否则,请参阅“对独立 gsutil 进行身份验证”部分

对 Google Cloud SDK 进行身份验证

将 gsutil 作为 Google Cloud SDK 的一部分时,系统将使用 OAuth2 来对访问进行身份验证并授予访问权限。请注意,如果您已执行了上面的将 gsutil 作为 Google Cloud SDK 的一部分进行安装过程,则您可能已执行了以下步骤。如果您之前运行过 gcloud init,系统会询问您是否要重新初始化配置或创建新配置。

  1. 打开命令提示符实例。

  2. 在命令提示符处运行 gcloud init

    您会收到以下输出结果:

    Welcome! This command will take you through the configuration of gcloud.
     
    Your current configuration has been set to: [default]
     
    To continue, you must login. Would you like to login (Y/n)?
    

  3. 依次按“Y”键和 Enter 键登录。

    • 该命令会输出一个网址,并尝试打开一个浏览器窗口来请求访问您的项目。 如果此时系统打开了一个浏览器窗口,您将收到以下输出结果:

      Your browser has been opened to visit:
       
      https://accounts.google.com/o/oauth2/auth?redirect_uri=http%3A%2F%2F...
      

      转到下一步。

    • 如果您正在使用本地机器并且浏览器未自动加载该网址,请重试 gcloud init 命令并附上 --console-only 标志:

      gcloud init --console-only
      

      如果您使用此命令,或者 Cloud SDK 检测到无法打开浏览器(例如,您正在使用远程机器时),您会收到以下输出结果:

      Go to the following link in your browser:
       
      https://accounts.google.com/o/oauth2/auth?redirect_uri=urn%3Aietf%3Awg%3A...
       
      Enter verification code:
      

      打开浏览器并导航到提供的网址。

  4. 如果出现提示,请在浏览器窗口中使用与您的 Cloud Storage 数据关联的 Google 帐号登录。

  5. 授予访问权限。

    • 如果浏览器窗口自动打开,请审查应用权限,并在准备就绪后点击接受。随后,验证码会自动发送至命令行工具。

    • 如果您正在使用远程机器或使用了 --console-only 标志,请从该网址中复制验证码并将验证码粘贴到终端命令行中“Enter verification code:”之后。

  6. 选择此配置的默认项目。

    设置凭据后,gcloud 命令行工具会提示您输入此配置的默认项目,并且会提供可用项目的列表。从列表中选择一个项目 ID 即可。

    设置此属性后,需要项目的 gsutil 命令(例如 gsutil mb)会使用默认项目 ID,除非您使用 -p 标志替换项目 ID 或设置 CLOUDSDK_CORE_PROJECT 环境变量。

大功告成!您已准备好访问受保护的数据。如需查看 gsutil 命令列表,请在命令提示符处输入 gsutil

对独立 gsutil 进行身份验证

使用 HMAC 进行身份验证

虽然我们建议您使用 OAuth 2.0 对 gsutil 进行身份验证,但您也可以将 HMAC 密钥用于您的凭据。如需使用 HMAC 进行身份验证,请在 gsutil config 命令中使用 -a 标志:

gsutil config -a

使用此命令后,系统会引导您完成一个类似于对独立 gsutil 进行身份验证的过程(请参阅上一部分),不同的是,系统会提示您输入与 HMAC 密钥相关联的访问 ID 和密文

如果您使用的是 Google Cloud SDK,您还应使用以下命令停用凭据传递功能:

gcloud config set pass_credentials_to_gsutil false