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:
Spin up an
f1-micro
instance with the Google-provided Debian image which will havegsutil
preinstalled.Use the SSH button to connect to it using the browser interface (you can also use
gcutil
orgcloud
commands, if you have those installed and available).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.Run the
gsutil mv
command, as suggested by Travis Hobrla:gsutil mv gs://bucket/source-object gs://bucket/dest-object
Once you're done with
gsutil
, delete the instance by clicking on theDelete
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.