【问题标题】:Is it possible to perform a resumable upload using Drive.Files.update()是否可以使用 Drive.Files.update() 执行可恢复上传
【发布时间】:2020-08-27 11:25:50
【问题描述】:

我有两个部分下载的文件(在我的云端硬盘中),这是我之前拆分的。这两个文件共同构成了整个文件。我的目标是使用 Apps 脚本将它们合并(即加入)到 Google Drive。

到目前为止我做了什么?

我使用Drive.Files.insert 上传了第一部分。然后我尝试Drive.Files.update 将第二部分上传到第一部分。但是它会覆盖文件。

我的问题:是否可以使用该方法加入/附加文件?

注意:我可以使用cattype 在我的电脑中加入文件

这是我工作的示例代码:

  var resource = {
    title : 'Demo'
  };

  var mediaData = f1.getBlob();
  //f1 contains the file 1

  var headers = {
    'Content-Length' : f1.getSize(),
    'Content-Type': 'application/json; charset=UTF-8',
     uploadType : 'resumable'
  }

  var file = Drive.Files.insert(resource, mediaData, {headers : headers});

  var fileId = file.id;

  resource = {
    title : 'New Demo',
    mimeType : 'pdf'
  };

  mediaData = f2.getBlob();
  //f2 contains file 2

  headers = {
    'Content-Type' : 'application/json; charset=UTF-8',
    uploadType : 'resumable'
  };

  var file = Drive.Files.update(resource, fileId, mediaData, {headers : headers});

  Logger.log(file.id + '\n' + file.fileSize);
}

【问题讨论】:

  • 很遗憾,现阶段无法使用Drive.Files.insert实现续传。这似乎是谷歌方面的当前规范。顺便问一下f1f2的文件大小,以字节为单位?因为如果f1 f2 < 50 MB,这个可以不用续传也可以实现,而且如果'f1'的文件不是256KB(256×1024字节)的倍数,为了实现续传,需要调整每个块。在我提出可恢复上传的示例脚本之前,我想问一下大小。
  • @Tanaike 非常感谢您的回复。我有两种情况。首先:f1 and f2 加起来小于 50 MB。但不是256 的倍数。更具体地说,f1=30000 f2=32768。第二:f1 = 50000000 bytes,f2 会多出一些字节。
  • 感谢您的回复。我不得不为我糟糕的英语水平道歉。很遗憾,从您的回复中我无法理解您的情况。可以问一下你回复的细节吗?
  • @Tanaike 我有两个问题。 1.f1 and f2 < 50 MB时的流程是什么? 2. 可以方便地展示一个取大小的示例脚本吗? .
  • 感谢您的回复。关于1. What is the procedure when f1 and f2 < 50 MB?,我不明白你想要什么。关于2. Can you show a sample script taking the size conveniently?,我现在没有脚本。我为此道歉。当我能够正确理解您的问题时,我想考虑解决方案。无法尽快解决您的问题,我深表歉意。这是因为我的技术不好。

标签: google-apps-script


【解决方案1】:

引用 Tanaike 的 cmets 作为答案

很遗憾,在当前阶段,使用 Drive.Files.insert 无法实现可恢复上传

另外,如果所有文件的大小加起来小于 50 MB:

如果“文件 A”+“文件 B”的文件大小小于 50 MB,则可以通过合并从每个文件中检索到的字节数组来创建一个文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-04
    • 2013-07-28
    • 2013-01-12
    • 2011-10-06
    • 1970-01-01
    相关资源
    最近更新 更多