rou*_*bin 4 firebase firebase-storage
是否可以复制firebase存储上的现有文件而无需再次上传?
我需要它用于我的应用程序的已发布/工作版本设置.
Firebase存储API中没有方法可以复制您已上传的文件.
但Firebase存储是建立在Google云端存储之上的,这意味着您也可以使用后者的API.它看起来就像gsutil cp你在寻找.来自文档:
该
gsutil cp命令允许您在本地文件系统和云之间复制数据,在云中复制数据,以及在云存储提供程序之间复制数据.
请记住,您gsutil可以完全访问存储分区.因此,它应该在您完全信任的设备上运行(例如服务器或您自己的开发机器).
这是我为我的项目最终采用的方法。
虽然它涵盖了更广泛的情况并将文件夹下的所有文件复制fromFolder到toFolder,但它可以轻松地应用于问题中的情况(仅复制可以传递分隔符 =“/”的文件 - 请参阅文档以了解更多详细信息)
const {Storage} = require('@google-cloud/storage');
module.exports = class StorageManager{
constructor() {
this.storage = new Storage();
this.bucket = this.storage.bucket(<bucket-name-here>)
}
listFiles(prefix, delimiter){
return this.bucket.getFiles({prefix, delimiter});
}
deleteFiles(prefix, delimiter){
return this.bucket.deleteFiles({prefix, delimiter, force: true});
}
copyFilesInFolder(fromFolder, toFolder){
return this.listFiles(fromFolder)
.then(([files]) => {
let promiseArray = files.map(file => {
let fileName = file.name
let destination = fileName.replace(fromFolder, toFolder)
console.log("fileName = ", fileName, ", destination = ", destination)
return file.copy(destination)
})
return Promise.all(promiseArray)
})
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1365 次 |
| 最近记录: |