我正在尝试将存储中的数据从
documents/docId/file.name
迁移到users/userId/documents/docId/file.name
。是否可以复制像documents/docId
这样的文件夹而不需要定义“file.name”?
我的代码目前只有在我提供准确的文件名时才有效。它看起来像这样:
const updateStorageData = async () => {
return admin
.storage()
.bucket()
.file('documents/1/Screenshot 2023-05-09 at 00.33.45.png')
.copy(
admin
.storage()
.bucket()
.file('users/testID/documents/1/Screenshot 2023-05-09 at 00.33.45.png'),
);
};
我想尝试复制文件夹中的所有文件,而无需提供确切的文件名。这可能吗?
没有单一的 API 可以复制文件夹中的所有文件,但您可以 列出文件夹中的文件,然后循环一个接一个地复制它们。
您需要按照以下几行使用
getFiles()
和move()
方法:
const arrayOfFiles = await admin
.storage()
.bucket()
.getFiles();
const listOfFiles = arrayOfFiles[0];
const promises = [];
listOfFiles.forEach(file => {
// Check if the file need to be moved
if (fileToBeMoved) {
promises.push(file.move('my-image-new.png'))
}
});
await Promise.all(promises)