Это не может быть сделано за один вызов, его должно быть два. Сначала вы найдете родительский идентификатор идентификатора файла, который у вас есть, затем вам нужно запросить имя папки, используя родительский идентификатор, который был возвращен вам при первом вызове.
GET https://www.googleapis.com/drive/v3/files/[FileId]?fields=parents
Даст вам родительский идентификатор папки, в которой файл находится в данный момент
GET https://www.googleapis.com/drive/v3/files/[ParentId]?fields=name
Даст вам имя родительской папки
Вот простой пример, сделанный с помощью "node.js"
Мы ищем имя файла "123" , как только найден поиск родительского идентификатора
Способ обратного вызова:
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])
})
});
}
Способ обещания:
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)
})
}
Выход:
File ID : 2xU_zgmOcjOIterprt91wibEEKU8fuNI-yZuBcgvEFjY
Parent folder ID : 2KQve4H24jlgJKcywGRBJaOnTK2tDLZgR
Ссылки: