【发布时间】:2020-08-27 11:25:50
【问题描述】:
我有两个部分下载的文件(在我的云端硬盘中),这是我之前拆分的。这两个文件共同构成了整个文件。我的目标是使用 Apps 脚本将它们合并(即加入)到 Google Drive。
到目前为止我做了什么?
我使用Drive.Files.insert 上传了第一部分。然后我尝试Drive.Files.update 将第二部分上传到第一部分。但是它会覆盖文件。
我的问题:是否可以使用该方法加入/附加文件?
注意:我可以使用cat 或type 在我的电脑中加入文件
这是我工作的示例代码:
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实现续传。这似乎是谷歌方面的当前规范。顺便问一下f1和f2的文件大小,以字节为单位?因为如果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?,我现在没有脚本。我为此道歉。当我能够正确理解您的问题时,我想考虑解决方案。无法尽快解决您的问题,我深表歉意。这是因为我的技术不好。