Move/rename 文件夹在 Google 云存储中使用 nodejs gcloud api
Move/rename folder in Google Cloud Storage using nodejs gcloud api
我正在尝试使用 gcloud api.
重命名或移动 google 云存储中的文件夹
一个类似的问题解释了如何删除文件夹:
Delete folder in Google Cloud Storage using nodejs gcloud api
但是如何重命名文件夹呢?或移动到另一条路径?
没有文件夹。只是一组对象恰好具有相同的键前缀,例如 photos/animals/cat.png
和 photos/animals/dog.png
都有一个共同的前缀 photos/animals/
,这就是使它们看起来在同一个文件夹。
您需要将每个对象复制(或移动)到其新键,例如将 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)
我正在尝试使用 gcloud api.
重命名或移动 google 云存储中的文件夹一个类似的问题解释了如何删除文件夹: Delete folder in Google Cloud Storage using nodejs gcloud api
但是如何重命名文件夹呢?或移动到另一条路径?
没有文件夹。只是一组对象恰好具有相同的键前缀,例如 photos/animals/cat.png
和 photos/animals/dog.png
都有一个共同的前缀 photos/animals/
,这就是使它们看起来在同一个文件夹。
您需要将每个对象复制(或移动)到其新键,例如将 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)