From cd4ad7714f30f20e14c48602c5a305bfe03c0d9a Mon Sep 17 00:00:00 2001 From: Nu11u5 Date: Tue, 5 Apr 2022 22:46:25 -0500 Subject: [PATCH] Handle GDrive shortcut files In the event that a file is a shortcut, uses the targetId instead of the file id. No headRevisionId is initially available, but will be retrieved from the target when stat() is called. --- app/scripts/storage/impl/storage-gdrive.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/app/scripts/storage/impl/storage-gdrive.js b/app/scripts/storage/impl/storage-gdrive.js index 63a8460b..b33e59b2 100644 --- a/app/scripts/storage/impl/storage-gdrive.js +++ b/app/scripts/storage/impl/storage-gdrive.js @@ -212,7 +212,7 @@ class StorageGDrive extends StorageBase { } const urlParams = { - fields: 'files(id,name,mimeType,headRevisionId)', + fields: 'files(id,name,mimeType,headRevisionId,shortcutDetails)', q: query, pageSize: 1000, includeItemsFromAllDrives: true, @@ -233,9 +233,12 @@ class StorageGDrive extends StorageBase { const fileList = response.files.map((f) => ({ name: f.name, - path: f.id, + path: f.shortcutDetails?.targetId ?? f.id, rev: f.headRevisionId, - dir: f.mimeType === 'application/vnd.google-apps.folder' + dir: + f.mimeType === 'application/vnd.google-apps.folder' || + f.shortcutDetails?.targetMimeType === + 'application/vnd.google-apps.folder' })); if (!dir) { fileList.unshift({