使用 google 驱动器 api 上传文件后看不到文件

Can't see file after uploading it with google drive api

我想使用 google drvie api 上传文件。代码 returns 200 OK 但是当我在浏览器中登录 google 驱动器时看不到该文件。 credentials.json 是从 service_account 生成的。此帐户与 google 驱动器 api 关联。 打开文件夹时,parent 中的 id 从浏览器地址栏复制。此文件夹也与服务帐户共享。

const auth = new google.auth.GoogleAuth({
  keyFile: 'credentials.json',
  scopes: ['https://www.googleapis.com/auth/drive.file'],
});

const drive = google.drive({version: 'v3', auth});
    
const fileMetadata = {
    'name': 'test.txt',
    'parents':[{"id":"1yh6V..."}]
};
const media = {
    mimeType: 'text/txt',
    body: fs.createReadStream('test.txt')
};
drive.files.create({
    resource: fileMetadata,
    media: media,
    fields: 'id'
}, (err, file) => {
    if (err) {
       console.error(err);
    } else {
        console.log('Upload success!');
    }
});

使用云端硬盘 API 上传文件时,您似乎正在使用 Node.js,您可以使用这个:

const fileMetadata = {
    name: 'test.txt',
    parents:["1yh6V..."]
};
const media = {
    mimeType: 'text/plain',
    body: fs.createReadStream('test.txt')
};
drive.files.create({
    resource: fileMetadata,
    media: media,
    fields: 'id'
}, (err, file) => {
    if (err) {
       console.error(err);
    } else {
        console.log('Upload success!');
    }
});

更改如下:

  1. 将纯文本文件的 media.mimeType 替换为 'text/plain',这里是支持的列表 Export MIMETypes
  2. 根据此 create file in a folder using Node.jsfileMetadata.parents 替换为 ["1yh6V..."],其中指定了 parent 属性

注:

由于可用环境平台的限制,我无法重现您的问题。我只是在寻找可以帮助验证您的代码的有用参考资料。