1

我正在研究一种更快的方法来从 Google Drive 获取数据以用于数据输入。我有一堆包含图像的文件夹,我需要获取每个图像的 URL,以及以像素为单位的宽度和高度(每个图像的属性的一部分)。

我以前从未使用过 Google Drive API,所以我查阅了文档。它有一个 JS 演示应用程序,列出了驱动器基目录中的所有文件。但是,我不知道如何更改它以请求某个文件夹中的文件。

这个想法是用户粘贴 Google Drive 文件夹的 ID,然后 JavaScript 程序返回链接、宽度和高度。然后,用户可以简单地将其粘贴到数据输入表单中。

这是列出文件的功能:

function listFiles() {
        gapi.client.drive.files.list({
          'pageSize': 10,
          'fields': "nextPageToken, files(id, name)",
        }).then(function(response) {
          appendPre('Files:');
          var files = response.result.files;
          if (files && files.length > 0) {
            for (var i = 0; i < files.length; i++) {
              var file = files[i];
              appendPre(file.name + ' (' + file.id + ')');
            }
          } else {
            appendPre('No files found.');
          }
        });
      }

我已经看到如何使用 URL GET 请求来完成它,但不知道如何将其转换为gapi.client.drive如上所示的请求。

这里的任何帮助都会很好。

4

1 回答 1

1
  • 为了列出某个文件夹中的文件,您必须提供参数q并指定文件夹 ID。它应该是这样的:
'q': "'your-folder-id' in parents"

当然,您可以将其存储'your-folder'id'在变量中,或者将其作为参数传递给您的函数。

  • 您还可以专门查找具有某些 MIME 类型的文件。例如,如果你想查找 MIME 类型的文件image/jpeg,参数q应该是这样的:
'q': "'your-folder-id' in parents and mimeType = 'image/jpeg'"
  • 最后,如果要检索图像的widthheight,则应指定要获取字段imageMediaMetadata,如下所示:
'fields': "nextPageToken, files(id, name, imageMediaMetadata)"
  • 综上所述,您的 API 调用应如下所示:
gapi.client.drive.files.list({
  'pageSize': 10,
  'fields': "nextPageToken, files(id, name, imageMediaMetadata)",
  'q': "'your-folder-id' in parents"
})

参考:

我希望这有任何帮助。

于 2020-02-04T11:31:57.350 回答