【问题标题】:How can I upload a file to a particular google drive folder by name?如何按名称将文件上传到特定的谷歌驱动器文件夹?
【发布时间】:2020-01-20 10:06:23
【问题描述】:

我正在尝试将一组 pdf 上传到谷歌驱动器,我希望将它们分类到谷歌驱动器上的各种文件夹中。

现在我在 for 循环中上传文件,每个文件都有自己的单独请求。

有没有办法像在我自己​​的文件系统上一样将它们分类到文件路径中?

例如:`certificates/${courseYear}/${courseName}`

【问题讨论】:

  • 上传每个文件时只需要设置父文件夹即可。
  • 我能找到的唯一参考设置父文件夹使用 Id 而不是文件夹名称。按文件夹名设置父文件夹的语法是什么?
  • 它应该是您要上传到的文件夹的文件夹ID。请编辑您的问题并包含您的代码。
  • 所以如果文件夹被命名为certificates/${courseYear}/${courseName} 在我的例子中,id 就是那个字符串?
  • 文件夹的文件 id 是什么我不能告诉你你必须在上传文件之前获取 courseName 文件夹的文件 id。

标签: javascript node.js file google-drive-api


【解决方案1】:

要将文件上传到 Google Drive 上的文件夹中,您必须具有要上传到的父文件夹的文件 ID/文件夹 ID。 (一切都通过 google 驱动器中的文件 id 运行,即使文件夹或目录也被称为文件,它的 mime 类型为 application/vnd.google-apps.folder

假设我有以下目录结构。

Root
    - Cars (fileid: 123456)

您需要做的第一件事是在 Google 驱动器上创建一个名为 Cars 的新文件夹。

var fileMetadata = {
  'name': 'cars'
};
var media = {
  mimeType: 'application/vnd.google-apps.folder'
};
drive.files.create({
  resource: fileMetadata,
  media: media,
  fields: 'id'
}, function (err, file) {
  if (err) {
    // Handle error
    console.error(err);
  } else {
    console.log('File Id: ', file.id);
  }
});

然后,要在该文件夹中创建上传文件,您需要设置从刚刚创建的文件夹中获得的文件 ID 的父值。

 var fileMetadata = {
  'name': 'photo.jpg',
  'parents': file.id.fromprevouscall
};
var media = {
  mimeType: 'image/jpeg',
  body: fs.createReadStream('files/photo.jpg')
};
drive.files.create({
  resource: fileMetadata,
  media: media,
  fields: 'id'
}, function (err, file) {
  if (err) {
    // Handle error
    console.error(err);
  } else {
    console.log('File Id: ', file.id);
  }
});

注意:我不是 javascript 开发人员,我只是在 website 上猜测此代码。我是 .net 开发人员,但 API 对每种语言的工作方式都相同。

【讨论】:

  • 所以我从您的回复中得知,无法使用文件路径之类的方式上传到文件夹。我必须先搜索文件夹以获取 id,然后将其标记为上传中的父文件夹?
  • 没有谷歌驱动器只要求您将文件夹 ID 作为请求的一部分发送。您可以将目录结构添加到父目录,但再次需要父文件夹的 id 才能上传。
【解决方案2】:

创建和填充文件夹 文件夹是仅包含元数据的文件,可用于组织 Google Drive 中的文件。具体来说,

文件夹是 MIME 类型为 application/vnd.google-apps.folder 且没有扩展名的文件。 您可以使用别名 root 来引用提供文件 ID 的任何位置的根文件夹。 本指南介绍了如何执行一些与文件夹相关的基本任务。

创建文件夹 要创建文件夹,请使用带有 application/vnd.google-apps.folder MIME 类型和标题的 files.create 方法。以下代码 sn-p 显示了如何使用客户端库创建文件夹: 在文件夹中插入文件 要在文件夹中插入文件,请使用 files.create 方法并在文件的 parents 属性中指定文件夹 ID。以下代码 sn-p 显示了如何使用客户端库将文件插入(上传)到特定文件夹中: 创建文件夹和子文件夹时可以使用 parents 属性。

在文件夹之间移动文件 要为现有文件添加或删除父级,请使用带有 addParents 和 removeParents 查询参数的 files.update 方法。以下代码 sn -p 使用客户端库在文件夹之间移动文件::

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多