This page describes the installation and setup of gsutil, a tool that enables you to access Cloud Storage from the command-line using HTTPS.
Simply installing gsutil gives you immediate read and/or write access to public data. Authenticating to the Cloud Storage service gives you read and/or write access to protected data that has been shared with you. Enabling billing gives you the ability to create and manage your own buckets.
System requirements
The gsutil tool runs on Linux/Unix, Mac OS, and Windows (XP or later).
gsutil versions 5.0 and up require Python 3.
If you plan to use composite objects, you need to install compiled crcmod. On Windows, this is only available for 32-bit Python.
Installing gsutil
The officially supported installation and update method for gsutil is as part of the Google Cloud CLI.
Installing gsutil as part of the Google Cloud CLI
Follow the instructions for your operating system to install gsutil as a part of the Google Cloud CLI:
- Confirm that you have a supported version of Python. The Google Cloud CLI requires
Python 3 (3.5 to 3.9). Note that the x86_64 Linux package includes
a bundled Python interpreter that will be preferred by default. For
information on how to choose and configure your Python interpreter, see
gcloud topic startup. - Download one of the following:
Platform Package Size SHA256 Checksum Linux 64-bit (x86_64)
google-cloud-cli-437.0.1-linux-x86_64.tar.gz 186.6 MB a6aa8b52f70f5ff4e04e4177f68a409df6ffa71341e8b6d537649c0b933810f2 Linux 64-bit (ARM)
google-cloud-cli-437.0.1-linux-arm.tar.gz 114.6 MB da965e580282c8cf0c4cdba27cb50f61f475cdea8e21fedf62fd458c4a89b772 Linux 32-bit (x86)
google-cloud-cli-437.0.1-linux-x86.tar.gz 115.9 MB dda80eb74ac7bbc8d57ef1e0753221dca25886aeb87b72d357440290bae5166a Alternatively, to download the Linux 64-bit archive file, at the command line, run:
curl -O https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-cli-437.0.1-linux-x86_64.tar.gz
For the 64-bit ARM archive file, run:
curl -O https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-cli-437.0.1-linux-arm.tar.gz
For the 32-bit archive file, run:
curl -O https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-cli-437.0.1-linux-x86.tar.gz
- Extract the contents of the file to any location on your file system (preferably
your Home directory). To replace an existing installation, remove the existing
google-cloud-sdkdirectory and then extract the archive to the same location. The following sample shows the command for 32-bit Linux. If you're using another platform, adjust the command accordingly:tar -xf google-cloud-cli-437.0.1-linux-x86.tar.gz
- Add the gcloud CLI to your path. Run the installation script from the root of the
folder you extracted to using the following command:
./google-cloud-sdk/install.sh
This can also be done non-interactively (for example, using a script) and by providing preferences as flags. To view the available flags, run:./google-cloud-sdk/install.sh --help
(Optional) To send anonymous usage statistics to help improve the gcloud CLI, answerYwhen prompted.
To add the gcloud CLI to yourPATHand enable command completion, answerYwhen prompted. - Open a new terminal so that the changes take effect.
- To initialize the gcloud CLI, run
gcloud init: - Optional. Install additional components using the component manager.
./google-cloud-sdk/bin/gcloud init
Package contents
The gcloud CLI is available in package format for installation on Debian and Ubuntu systems.
This package contains the gcloud, gcloud alpha,
gcloud beta, gsutil, and bq commands only. It doesn't
include kubectl or the App Engine extensions required to deploy an application using
gcloud commands. If you want these components, you must
install them separately.
Before you install the gcloud CLI, make sure that your operating system meets the following requirements:
- It is an Ubuntu release that hasn't reached end-of-life or a Debian stable release that hasn't reached end-of-life
- It has recently updated its packages:
sudo apt-get update
- It has
apt-transport-httpsandcurlinstalled:sudo apt-get install apt-transport-https ca-certificates gnupg curl sudo
- Add the gcloud CLI distribution URI as a package source.
- If your distribution
supports the signed-by option, run the following command:
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
If your distribution doesn't support the signed-by option, run the following command:
echo "deb https://packages.cloud.google.com/apt cloud-sdk main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list
- If your distribution
supports the signed-by option, run the following command:
- Import the Google Cloud public key.
- If your distribution's
apt-keycommand supports the--keyringargument, run the following command:curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key --keyring /usr/share/keyrings/cloud.google.gpg add -
If your distribution's apt-key command doesn't support the
--keyringargument, run the following command:curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
If your distribution (Debian 11+ or Ubuntu 21.10+) doesn't support
apt-key, run the following command:curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo tee /usr/share/keyrings/cloud.google.gpg
If you can't get latest updates due to an expired key, obtain the latest apt-get.gpg key file.
- If your distribution's
- Update and install the gcloud CLI:
sudo apt-get update && sudo apt-get install google-cloud-cli
For additionalapt-getoptions, such as disabling prompts or dry runs, refer to theapt-getman pages.Docker Tip: If installing the gcloud CLI inside a Docker image, use a single RUN step instead:
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-cli -yIfapt-keycommand is not supported: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 | tee /usr/share/keyrings/cloud.google.gpg && apt-get update -y && apt-get install google-cloud-sdk -y - (Optional) Install any of the following
additional components:
google-cloud-cligoogle-cloud-cli-anthos-authgoogle-cloud-cli-app-engine-gogoogle-cloud-cli-app-engine-grpcgoogle-cloud-cli-app-engine-javagoogle-cloud-cli-app-engine-pythongoogle-cloud-cli-app-engine-python-extrasgoogle-cloud-cli-bigtable-emulatorgoogle-cloud-cli-cbtgoogle-cloud-cli-cloud-build-localgoogle-cloud-cli-cloud-run-proxygoogle-cloud-cli-config-connectorgoogle-cloud-cli-datastore-emulatorgoogle-cloud-cli-firestore-emulatorgoogle-cloud-cli-gke-gcloud-auth-plugingoogle-cloud-cli-kptgoogle-cloud-cli-kubectl-oidcgoogle-cloud-cli-local-extractgoogle-cloud-cli-minikubegoogle-cloud-cli-nomosgoogle-cloud-cli-pubsub-emulatorgoogle-cloud-cli-skaffoldgoogle-cloud-cli-spanner-emulatorgoogle-cloud-cli-terraform-validatorgoogle-cloud-cli-testskubectl
For example, the
google-cloud-cli-app-engine-javacomponent can be installed as follows:sudo apt-get install google-cloud-cli-app-engine-java
- Run
gcloud initto get started:gcloud init
Downgrading gcloud CLI versions
To revert to a specific version of the gcloud CLI, where VERSION is of the
form 123.0.0, run the following command:
sudo apt-get update && sudo apt-get install google-cloud-cli=123.0.0-0
The ten most recent releases are always available in the repo.
NOTE: For releases prior to 371.0.0, the package name is google-cloud-sdk
Package contents
The gcloud CLI is available in package format for installation on Red Hat Enterprise Linux
7, Red Hat Enterprise Linux 8, Fedora 33, Fedora 34, CentOS 7, and Centos 8 systems. This package
contains the
gcloud, gcloud alpha, gcloud beta, gsutil, and
bq commands only. It doesn't include kubectl or the App Engine
extensions required to deploy an application using gcloud commands, which can be
installed separately as described later in this section.
- Update DNF with gcloud CLI repo information. The following sample command is for a
Red Hat Enterprise Linux 8-compatible installation. For a Red Hat Enterprise Linux 7-compatible
installation, replace
el8withel7in the value forbaseUrl.sudo tee -a /etc/yum.repos.d/google-cloud-sdk.repo << EOM [google-cloud-cli] name=Google Cloud CLI baseurl=https://packages.cloud.google.com/yum/repos/cloud-sdk-el8-x86_64 enabled=1 gpgcheck=1 repo_gpgcheck=0 gpgkey=https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg EOM
-
If you're installing on Fedora 34 or 35, install
libxcrypt-compat.x86_64.sudo dnf install libxcrypt-compat.x86_64
- Install the gcloud CLI:
sudo dnf install google-cloud-cli
- (Optional) Install any of the following
additional components:
google-cloud-cligoogle-cloud-cli-anthos-authgoogle-cloud-cli-app-engine-gogoogle-cloud-cli-app-engine-grpcgoogle-cloud-cli-app-engine-javagoogle-cloud-cli-app-engine-pythongoogle-cloud-cli-app-engine-python-extrasgoogle-cloud-cli-bigtable-emulatorgoogle-cloud-cli-cbtgoogle-cloud-cli-cloud-build-localgoogle-cloud-cli-cloud-run-proxygoogle-cloud-cli-config-connectorgoogle-cloud-cli-datastore-emulatorgoogle-cloud-cli-firestore-emulatorgoogle-cloud-cli-gke-gcloud-auth-plugingoogle-cloud-cli-kptgoogle-cloud-cli-kubectl-oidcgoogle-cloud-cli-local-extractgoogle-cloud-cli-minikubegoogle-cloud-cli-nomosgoogle-cloud-cli-pubsub-emulatorgoogle-cloud-cli-skaffoldgoogle-cloud-cli-spanner-emulatorgoogle-cloud-cli-terraform-validatorgoogle-cloud-cli-testskubectl
For example, the
google-cloud-cli-app-engine-javacomponent can be installed as follows:sudo dnf install google-cloud-cli-app-engine-java
- Run
gcloud initto get started:gcloud init
Downgrading gcloud CLI versions
If you'd like to revert to a specific version of the gcloud CLI, where VERSION is
of the form 123.0.0, run:
sudo dnf downgrade google-cloud-cli-VERSION
The ten most recent releases will always be available in the repo.
NOTE: For releases prior to 371.0.0, the package name is google-cloud-sdk
-
Confirm that you have a supported version of Python:
-
To check your current Python version, run
python3 -Vorpython -V. Supported versions are Python 3 (3.5 to 3.9). - For Cloud SDK release version 352.0.0 and above, the main install script offers to install CPython's Python 3.7 on Intel-based Macs.
-
For more information on how to choose and configure your Python
interpreter, refer to
gcloud topic startup.
-
To check your current Python version, run
- Download one of the following:
-
Extract the archive to any location on your file system (preferably your
Home directory). On macOS, this can be achieved by opening the downloaded
.tar.gzarchive file in the preferred location.To replace an existing installation, remove the existing
google-cloud-sdkdirectory and then extract the archive to the same location. -
(Optional) Use the install script to add gcloud CLI tools to
your
PATH.You can also opt-in to command-completion for your shell, usage statistics collection, and install Python 3.7.Run the script (from the root of the folder you extracted in the last step) using this command:
./google-cloud-sdk/install.sh
This can also be done non-interactively (for example, using a script) by providing preferences as flags. To describe the available flags, run:./google-cloud-sdk/install.sh --help
To run the install script with screen reader mode on:./google-cloud-sdk/install.sh --screen-reader=true
Open a new terminal so that the changes take effect. -
To initialize the gcloud CLI, run
gcloud init: - Optional. Install additional components using the component manager.
| Platform | Package | Size | SHA256 Checksum |
|---|---|---|---|
|
macOS 64-bit
(x86_64) |
google-cloud-cli-437.0.1-darwin-x86_64.tar.gz | 120.9 MB | e0ef49eb6b8f32e5ebd601b34f14b6e45c2d23097cad25e9f6720ec8bcf4d6e5 |
|
macOS 64-bit
(ARM64, Apple M1 silicon) |
google-cloud-cli-437.0.1-darwin-arm.tar.gz | 118.0 MB | 691c50afb579fb014b0d3233adea123ac6193ca55ade941eeadecd24b1b4627f |
|
macOS 32-bit
(x86) |
google-cloud-cli-437.0.1-darwin-x86.tar.gz | 100.6 MB | 4d6ed90c9dc272301c9e60716afa5ffb11052842a0a71756e7278ffb95830f27 |
./google-cloud-sdk/bin/gcloud init
-
The Google Cloud CLI works on Windows 8.1 and later and Windows Server 2012 and later.
-
Download the Google Cloud CLI installer.
Alternatively, open a PowerShell terminal and run the following PowerShell commands:
(New-Object Net.WebClient).DownloadFile("https://dl.google.com/dl/cloudsdk/channels/rapid/GoogleCloudSDKInstaller.exe", "$env:Temp\GoogleCloudSDKInstaller.exe") & $env:Temp\GoogleCloudSDKInstaller.exe -
Launch the installer and follow the prompts. The installer is signed by Google LLC.
If you're using a screen reader, check the Turn on screen reader mode checkbox. This option configures
gcloudto use status trackers instead of unicode spinners, display progress as a percentage, and flatten tables. For more information, see the Accessibility features guide. -
Cloud SDK requires Python; supported versions are Python 3 (3.5 to 3.9). By default, the Windows version of Cloud SDK comes bundled with Python 3. To use Cloud SDK, your operating system must be able to run a supported version of Python.
The installer installs all necessary dependencies, including the needed Python version. While Cloud SDK installs and manages Python 3 by default, you can use an existing Python installation if necessary by unchecking the option to Install Bundled Python. See
gcloud topic startupto learn how to use an existing Python installation. After installation is complete, the installer gives you the option to create Start Menu and Desktop shortcuts, start the Google Cloud CLI shell, and configure the gcloud CLI. Make sure that you leave the options to start the shell and configure your installation selected. The installer starts a terminal window and runs the
gcloud initcommand.- The default installation doesn't include the App Engine extensions required to deploy an
application using
gcloudcommands. These components can be installed using the gcloud CLI component manager.
- If your installation is unsuccessful
due to the
findcommand not being recognized, ensure yourPATHenvironment variable is set to include the folder containingfind. Usually, this isC:\WINDOWS\system32;. - If you uninstalled the gcloud CLI, you must reboot your system before installing the gcloud CLI again.
- If unzipping fails, run the installer as an administrator.
Perform updates with the components update command: gcloud components update.
To learn how to use gsutil, see Quickstart: Using the gsutil Tool exercise,
or run gsutil help.
Setting Up Credentials to Access Protected Data
Installing gsutil allows you to download and access publicly-accessible data, but in order to access protected data or write to a protected bucket, you need to set up credentials (authenticate). For example, if someone else has created a Cloud Storage account and uploaded data that is only accessible to you or other specific individuals, you must set up your credentials to the Cloud Storage service to be able to access this data.
When using gsutil as part of the Google Cloud CLI, OAuth2 is used to
authenticate and authorize access. Note that you may have already performed
the following steps if you performed
Installing gsutil as part of the Google Cloud CLI above. If you
ran gcloud init previously, you are asked if you want to re-initialize the
configuration or create a new one.
Open a command prompt instance.
Run
gcloud initat the command prompt.You receive the following output:
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)?
Type "Y" and press enter to login.
The command prints a URL and tries to open a browser window to request access to your project. If a browser window can be opened, you receive the following output:
Your browser has been opened to visit: https://accounts.google.com/o/oauth2/auth?redirect_uri=http%3A%2F%2F...
Go to the next step.
If you are working on a local machine and your browser doesn't automatically load the URL, retry the
gcloud initcommand with the--console-onlyflag:gcloud init --console-only
If you use this command, or if the gcloud CLI detects that a browser can not be opened (such as if you are working on a remote machine), you receive the following output:
Go to the following link in your browser: https://accounts.google.com/o/oauth2/auth?redirect_uri=urn%3Aietf%3Awg%3A... Enter verification code:
Open a browser and navigate to the URL provided.
If prompted, sign in with the Google account associated with your Cloud Storage data in the browser window.
Grant access.
If the browser window opened automatically, review the application permissions and click Accept when you are ready. The verification code is then automatically sent to the command line tool.
If you are working on a remote machine or used the
--console-onlyflag, copy the verification code from the URL and paste it to the terminal command line, after Enter verification code:.
Choose the default project for this configuration.
After setting up your credentials, the Google Cloud CLI prompts you for a default project for this configuration and provides a list of available projects. Select a project ID from the list.
When you set this property, gsutil commands that require a project, such as
gsutil mb, use the default project ID unless you override them with the-pflag or set theCLOUDSDK_CORE_PROJECTenvironment variable.
That's it. You're ready to access protected data. To see a listing of gsutil
commands, type gsutil at the command prompt.
Troubleshooting
If you try to authenticate gsutil using the gcloud init command, but are still
not able to access the expected buckets or objects, your system might have both
the legacy, stand-alone version of gsutil and the Google Cloud CLI-bundled
version of gsutil installed on it. Run the command gsutil version -l and check
the value for using cloud sdk. If False, your system is using the
stand-alone version of gsutil when you run commands. It's recommended that you
remove the stand-alone version of gsutil from your system; however, you can
alternatively authenticate using gsutil config -a or gsutil config -e.
Authenticate with HMAC
While OAuth 2.0 is the recommended way to authenticate gsutil, you can also use HMAC keys for your credentials. To authenticate with HMAC, use the following command:
gsutil config -a
Using this command takes you through an authentication process in which you are prompted for the access ID and secret associated with your HMAC key.
When authenticating with HMAC keys, you should disable credential passing from
the Google Cloud CLI by using the command:
gcloud config set pass_credentials_to_gsutil false.
Enable mTLS
You may also want to enable mutual TLS (mTLS). When mTLS is enabled on your
device, your device attempts to connect to
storage.mtls.googleapis.com. Before the connection is allowed,
Cloud Storage verifies the certificate on your device.
The simplest way to to obtain a certificate is through Google Cloud CLI. You can set one manually in the .boto file by setting the following values under "Credentials":
-
use_client_certificate: A flag controlling whether or not to use mTLS. -
cert_provider_command: A shell command that prints a certificate to stdout for gsutil to read.
Try it for yourself
If you're new to Google Cloud, create an account to evaluate how Cloud Storage performs in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
Try Cloud Storage free