最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - renaming files in Google Cloud Storage? - Stack Overflow

programmeradmin1浏览0评论

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!

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!

Share Improve this question edited Aug 31, 2014 at 18:26 Misha Brukman 13.4k5 gold badges64 silver badges82 bronze badges asked Jul 17, 2014 at 19:12 user3826544user3826544 711 silver badge4 bronze badges 2
  • 1 Which API are you using? You'll want to do a copy followed by a delete. – jterrace Commented Jul 17, 2014 at 20:37
  • i'm using cloud-storage and gcloud, neither of which support copying or moving files – user3826544 Commented Jul 18, 2014 at 14:36
Add a ment  | 

4 Answers 4

Reset to default 3

This mand:

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 mand:

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

You can find this information in the docs.

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.

Yes. You copy it to a new name with the mv mand. 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.


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
发布评论

评论列表(0)

  1. 暂无评论