Moving files between folders in Google Cloud Storage with Google Cloud Console

Update: Google Cloud Shell provides a terminal within the Google Cloud Console site without having to manually create VMs; it comes with gsutil and Google Cloud SDK pre-installed and pre-authenticated.


Prior answer: If you're having issues installing gsutil on your computer, consider the following approach:

  1. Spin up an f1-micro instance with the Google-provided Debian image which will have gsutil preinstalled.

  2. Use the SSH button to connect to it using the browser interface (you can also use gcutil or gcloud commands, if you have those installed and available).

  3. Run gcloud auth login --no-launch-browser within the instance. It will give you a URL to open with your browser. Once you open it, grant the OAuth permissions, and it will display a code. Paste that code back into the command-line window where you ran the command so that it gets the authentication token.

  4. Run the gsutil mv command, as suggested by Travis Hobrla:

    gsutil mv gs://bucket/source-object gs://bucket/dest-object

  5. Once you're done with gsutil, delete the instance by clicking on the Delete button at the top of the VM instance detail page. Make sure that the box marked "Delete boot disk when instance is deleted" on the same VM instance page is checked, so that you don't leave an orphaned disk around, which you will be charged for.

    You can also browse your persistent disks on the "Disks" tab right below the "VM instances" tab, and delete disks manually there, or make sure there aren't an orphaned disks in the future.

Given the current price of $0.013/hr for an f1-micro instance, this should cost you less than a penny to do this, as you'll only be charged while the instance exists.


There is not currently a way to do this via the Google Cloud Console.

Because folders in Google Cloud Storage are really just placeholder objects in a flat namespace, it's not possible to do an atomic move or rename of a folder, which is why this scenario is more complex than doing a folder move in a local filesystem (with a hierarchical namespace). That's why a more complex tool like gsutil is needed.