Google Drive API - 使用 file_id 获取父文件夹?

Aar*_*ron 1 google-api google-drive-api

Google Drive 主题 有没有办法通过 file_id 或folder_id 获取“文件夹名称”?

Jef*_*ush 6

这不能在一次调用中完成,需要两次调用。首先,找到您拥有的文件 ID 的父 ID,然后需要使用第一次调用返回给您的父 ID 来请求文件夹的名称。

GET https://www.googleapis.com/drive/v3/files/[FileId]?fields=parents

将为您提供文件当前所在文件夹的父 ID

GET https://www.googleapis.com/drive/v3/files/[ParentId]?fields=name

将为您提供父文件夹的名称


这是一个用“node.js”制作的简单示例

我们正在搜索文件名“123”,一旦找到就搜索父 ID

回调方式:

function getParentID(auth) {

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

    drive.files.list({
        q: "name = '123'"
    }, (err, res) => {

        if (err) return console.log('#1001 - The API returned an error: ' + err);

        const fileId = res.data.files[0].id;
        console.log("File ID : ", fileId);

        drive.files.get({
            fileId: fileId,
            fields: "parents"
        }, (err, res) => {

            if (err) return console.log('#1002 - The API returned an error:' + err);

            console.log("Parent folder ID :", res.data.parents[0])

        })

    });

}
Run Code Online (Sandbox Code Playgroud)

承诺方式:

function getParentID2(auth) {

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

    drive.files.list({
        q: "name = '123'"
    }).then((res) => {

        const fileId = res.data.files[0].id;
        console.log("File ID : ", fileId);

        drive.files.get({
            fileId: fileId,
            fields: "parents"
        }).then((res) => {
            console.log("Parent folder ID :", res.data.parents[0])
        })

    }).catch((err) => {
        console.log(err.response.data)  
    })

}
Run Code Online (Sandbox Code Playgroud)

输出:

File ID : 2xU_zgmOcjOIterprt91wibEEKU8fuNI-yZuBcgvEFjY Parent folder ID : 2KQve4H24jlgJKcywGRBJaOnTK2tDLZgR

参考: