【问题标题】:Google Drive API uploading filesGoogle Drive API 上传文件
【发布时间】:2021-02-02 19:20:52
【问题描述】:

我正在尝试为客户找出 google drive api (node.js)。我需要将文件上传到他们的驱动器。我决定使用服务帐户并让身份验证正常工作。我正在尝试上传示例文件,但在我的驱动器中找不到它。我的猜测是我需要以某种方式将它链接到我的驱动器,但我不确定。这是我根据网上找到的示例编写的代码:

async function upload(){
const drive = google.drive({
    version: 'v3',
    auth: authorize()
});

const res = await drive.files.create({
    requestBody: {
        name: 'Test',
        mimeType: 'text/plain'
    },
    media: {
        mimeType: 'text/plain',
        body: 'Hello World'
    }
}, function (err, file) {
    if (err) {
        // Handle error
        console.error(err);
    } else {
        console.log('File Id: ', file.id);
    }
});

authorize() 返回 jwtclient 并且工作正常。

console.log(res) 返回未定义的文件 ID。

任何帮助将不胜感激!

【问题讨论】:

  • 我的回答是否向您展示了您想要的结果?你能告诉我吗?这对我学习也很有用。如果这可行,与您有相同问题的其他人也可以将您的问题作为可以解决的问题。如果您对我的回答有疑问,请随时告诉我。我想学习解决你的问题。

标签: node.js google-api google-drive-api


【解决方案1】:

当从 googleapis 获取 Node.js 的响应值时,请按如下方式修改您的脚本。

发件人:

console.log('File Id: ', file.id);

收件人:

console.log('File Id: ', file.data.id);

注意:

  • 在你的脚本中,我认为你也可以使用下面的脚本。

      const res = await drive.files
        .create({
          requestBody: {
            name: "Test",
            mimeType: "text/plain",
          },
          media: {
            mimeType: "text/plain",
            body: "Hello World",
          }
        })
        .catch(console.log);
      if (res) console.log("File Id: ", res.data.id);
    

参考:

【讨论】:

    猜你喜欢
    • 2020-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多