6

Can you rename files in Google Cloud Storage?

I am letting users upload photos, but I want to give them the ability to edit the photo, at least by changing the name they uploaded it with. I am using Javascript through Node.js.

Thanks!

Misha Brukman
  • 12,938
  • 4
  • 61
  • 78
user3826544
  • 71
  • 1
  • 3

4 Answers4

3

This command:

gsutil mv gs://my_bucket/olddir gs://my_bucket/newdir

will do the job. If you have a large number of files you need to do a multi-processing move, so use this command:

gsutil -m mv gs://my_bucket/olddir gs://my_bucket/newdir

You can find this information in the docs.

Misha Brukman
  • 12,938
  • 4
  • 61
  • 78
George
  • 1,110
  • 8
  • 17
0

Yes. You copy it to a new name with the mv command. Below renames file.html to file.

gsutil mv gs://xxxx/folder/file.html gs://xxxx/folder/file

For more information see Google's gsutil documentation at mv - Move/rename objects.

Ronnie Royston
  • 16,778
  • 6
  • 77
  • 91
0

You can rename a file using the storage.move() method.

const {Storage} = require('@google-cloud/storage');
const storage = new Storage();

const oldFileName = 'path/to/old_file.jpg';
const newFileName = 'path/to/new_file.jpg';

storage
  .bucket(bucketName)
  .file(oldFileName)
  .move(newFileName)
  .then(() => {
    console.log(`File ${oldFileName} was renamed to ${newFileName}.`);
  })
  .catch(err => {
    console.error('Error renaming file:', err);
  });

bucketName is the name of the bucket where the file is located.

oldFileName is the current name of the file.

newFileName is the new name that you want to give the file.

You should have the proper permissions.

Smit Gabani
  • 240
  • 2
  • 6
-3

Here is Python function performs a multi-threaded/multi-processing move:

from subprocess import call, CalledProcessError

def rename_object(self, old_dir, new_dir):
    base_cmd = ["gsutil", "-m", "mv"]
    old_path = "gs://{}".format(old_dir)
    new_path = "gs://{}".format(new_dir)
    cmd = base_cmd + [old_path, new_path]
    try:
        call(cmd)
    except CalledProcessError as e:
        print e
Ali
  • 13
  • 1