如何在一个Google云端硬盘文件夹中访问所有文件?

PGT

我正在尝试使用node.js(https://github.com/googleapis/google-api-nodejs-client/的官方Google api库访问由Webapp创建的文件夹中的媒体文件

成功执行oauth时,我将创建一个文件夹MyAppFolder,并media在其中创建一个文件夹。

想法是,用户将media用他们想要的任何照片和视频填充此文件夹,然后我的webapp会将其带入并显示在页面上,以供用户获得其媒体的汇总视图。我可以在该media文件夹中获取所有媒体文件这是我的代码片段:

async function getGoogleDriveMedia({ user, credentials }) {
  // await prepareDrive({ user, credentials });
  const rootFolder = await getRootFolder({ user, credentials });

  if (!rootFolder) {
    return;
  }

  const client = await createOauthClient({ user, credentials });
  const drive = google.drive({
    version: 'v3',
    auth: client,
  });
  const mediaFolderRes = await drive.files.list({
    q: `mimeType='application/vnd.google-apps.folder' and name='media' and '${
      rootFolder.id
    }' in parents`,
    fields: 'nextPageToken, files(id, name, parents)',
  });

  const mediaFolder = _.get(mediaFolderRes, 'data.files[0]');
  if (!mediaFolder) {
    return;
  }

  const mediaRes = await drive.files.list({
    q: `'${
      mediaFolder.id
    }' in parents and (mimeType contains 'image/' or mimeType contains 'video/')`,
    fields:
      'nextPageToken, files(' +
      [
        'id',
        'name',
        'webContentLink',
        'webViewLink',
      ].join(', ') +
      ')',
  });

  return _.get(mediaRes, 'data.files');
}

现在的问题是我无法显示这些媒体,因为它们不能公开访问。是否可以MyAppFolder通过一次权限更新使以及其中的所有内容对公众开放?还是我需要针对每个文件执行此操作?

我还检查了fields.files其API资源管理器中参数:https : //developers.google.com/apis-explorer/#search/drive.files.list/m/drive/v3/drive.files.list

没有类似.previewLink或其他图片网址字段的内容。

如何在我的Web应用程序上显示这些图像?

戴姆敦

是否可以通过单个权限更新使MyAppFolder及其中的所有内容对公众开放?还是我需要针对每个文件执行此操作?

否,无法一次更新文件中的所有内容。您将必须更新每个文件。即使更新文件夹也不会更改文件夹中用于文件的设置。

只需让您的应用程序在文件上传后更改其权限即可。同时,运行所有现有文件并更改其权限。

注意:希望您已通知用户其文件将公开。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将Google云端硬盘文件夹创建到另一个文件夹时出错

如何删除Android上一个文件夹中的所有文件和文件夹

Google云端硬盘-如何列出指定文件夹中的所有文件

文件夹中除一个命名文件夹外的所有文件夹的glob

如何在Google云端硬盘中搜索子文件夹和子文件夹?

Python:如何从Google云端硬盘下载整个文件夹

如何在一个文件夹中的文件夹内移动文件

如何在javascript中递归列出N级以下的Google云端硬盘文件和文件夹?

取消共享Google云端硬盘上的所有文件,文件夹和子文件夹

如何在“共享的Google云端硬盘”下读取多个文件夹中的文件?

如何使用Flutter访问Google云端硬盘的appdata文件夹文件?

使用文本文件中的文件列表将一个文件夹复制到Google云端硬盘中的另一个文件夹

使用文件名将一个文件夹复制到Google云端硬盘中的另一个文件夹

是否可以通过一个请求仅列出Google云端硬盘API上根文件夹中或根文件夹下任何级别的文件?

如何在vscode中排除除一个文件夹以外的所有文件夹?

在Python中列出所有Google云端硬盘文件和文件夹,并保存ID

如何在Google云端硬盘中打印所有父文件夹名称?

如何将所有同级文件夹移动到一个文件夹中?

创建一个新文件夹,然后在该文件夹中插入文件。Google云端硬碟

从共享的Google云端硬盘文件夹下载所有文件夹

在DrEdit中列出Google云端硬盘中的所有文件和文件夹

在Mac OS X上,如何加密一个小文件夹并将其复制到Google云端硬盘或DropBox?

从一个文件夹中复制所有文件和文件夹

如何在文件夹中的所有(关闭)Excel文件上运行一个VBA宏?

Python:如何使用folderId将文件上传到Google云端硬盘中的特定文件夹

Dropbox和Google云端硬盘同时同步同一个文件夹,可以吗?

如何用一个文件替换一个文件夹中的所有文件?

拒绝访问除一个文件夹中的内容以外的所有内容

Google云端硬盘文件夹访问信息