Google云端硬盘API-上传本地文件夹node.js

时间:2018-12-02 00:44:22

标签: node.js google-drive-api

请,我想将包含所有文件和子目录的本地文件夹上传到带有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)

请帮助。

0 个答案:

没有答案