node.jsfirebase-storagegoogle-api-nodejs-clientgcloud-node

Move/rename folder in Google Cloud Storage using nodejs gcloud api


I am trying to rename or move a folder in google cloud storage using the gcloud api.

A similar question explains how to delete a folder: Delete folder in Google Cloud Storage using nodejs gcloud api

But how can one rename a folder? or move to another path?


Solution

  • You can try something like this:

    'use strict'
    
    var async = require('async')
    var storage = require('@google-cloud/storage')()
    var bucket = storage.bucket('stephen-has-a-new-bucket')
    
    bucket.renameFolder = function(source, dest, callback) {
      bucket.getFiles({ prefix: source }, function(err, files) {
        if (err) return callback(err)
    
        async.eachLimit(files, 5, function(file, next) {
          file.move(file.name.replace(source, dest), next)
        }, callback)
      })
    }
    
    bucket.renameFolder('photos/cats', 'photos/dogs', console.log)