繁体   English   中英

使用nodejs gcloud api在Google云端存储中移动/重命名文件夹

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

我正在尝试使用gcloud api重命名或移动谷歌云存储中的文件夹。

类似的问题解释了如何删除文件夹: 使用nodejs gcloud api删除Google云端存储中的文件夹

但是如何重命名文件夹呢? 或者转移到另一条路?

没有文件夹。 只有一组对象都碰巧具有相同的键前缀,例如photos/animals/cat.pngphotos/animals/dog.png都有一个共同的前缀photos/animals/这就是它们看起来photos/animals/dog.png什么在同一个文件夹中。

您需要将每个对象复制(或移动)到其新键,例如将photos/animals/cat.png移动到photos/pets/cat.png并将photos/animals/dog.png移动到photos/pets/dog.png

也就是说,Google Cloud提供了一种使用gsutil mv从命令行执行此操作的方法。

你可以尝试这样的事情:

'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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM