请,我想将包含所有文件和子目录的本地文件夹上传到带有Node.js的Google云端硬盘(API)。
代码仅上传文件的一部分,而不上传完整的文件。 (即图片的大小为74kB,上传的文件大小为64kB,部分图片丢失)
const simpleUpload = async (filename, path, parent) => {
const drive = await getDrive();
var fileMetadata = {
'name': filename,
};
console.log(parent);
const parentFolder = await searchFiles(parent);
if (parentFolder.length > 0) {
fileMetadata.parents = [parentFolder.pop().id]
}
const fileMimeType = mime.getType(path)
console.log(fileMimeType)
const media = {
mimeType: fileMimeType,
body: fs.createReadStream(path)
};
drive.files.create({
resource: fileMetadata,
media: media,
fields: 'id'
}, function (err, file) {
if (err) {
// Handle error
console.error(err);
} else {
console.log('File Id: ', file.id);
}
});
}
和用法:
var generator = fileHelper.walk('archive')
setTimeout(function () {
const file = generator.next().value;
const pathParts = file.split(path.sep)
googleDrive.createFolder(pathParts[1], 'archive')
.then(() => {
googleDrive.createFolder(pathParts[2], pathParts[1])
.then(() => {
googleDrive.simpleUpload(pathParts[3], file, pathParts[2]).then(() => console.log('File uploaded'))
})
})
}, 5000)
请帮助。