使用Node.js从Google Drive指定文件夹中获取文件列表的备忘录(Google Drive API v3)

由于找不到指定文件夹ID执行的方法,所以记录下来。

环境

    • Node.js v12.2.0

 

    Google Drive API v3 (過去の調べるとv2も出てくるので念のため)

基本 – Ji ben

我将进行Node.js的官方教程。

请使用以下链接查看Google Drive API v3在Node.js环境下的快速入门指南:https://developers.google.com/drive/api/v3/quickstart/nodejs

指定文件夹ID以获取信息

这是在浏览器中打开时URL的部分。

スクリーンショット 2019-06-26 19.45.46.png

我要重新撰写教程中的函数listFiles的部分。


async function listFiles(auth) {
  const drive = google.drive({version: 'v3', auth});
  const FOLDER_ID = `xxxxxxxxxxxxxxxxxxxxxxxxxxxxx`; //ここにフォルダIDを指定
  const params = {
    q: `'${FOLDER_ID}' in parents and trashed = false`,
  }

  try {
    const res = await drive.files.list(params);
    const files = res.data.files;
    if (files.length) {
      console.log('Files:');
      files.map((file) => {
        console.log(`${file.name} (${file.id})`);
      });
    } else {
      console.log('No files found.');
    }    
  } catch (err) {
    console.log('The API returned an error: ' + err);
  }
}

个别人的感受

你怎么会指定一个这样的方式在父目录下的’$ {FOLDER_ID}’和没被垃圾归档 = false的情况下,这样的问法是怎么回事…..

大致上看了一下中文版,在参数这一部分能够知道有哪些参数,但官方的list.js示例中没有写明参数的写法,让我找起来有点困难,苦笑。

尽管有driveId、teamDriveId等不同的东西,但据说它们是不同的(我没有完全调查清楚)。

可以参考

    • https://github.com/googleapis/google-api-nodejs-client/blob/master/samples/drive/list.js

 

    https://github.com/googleapis/google-api-nodejs-client/issues/1011
广告
将在 10 秒后关闭
bannerAds