我正在尝试通过Google Apps脚本将文件发布到REST API.我的想法是,我有一个创建Google Doc副本的流程,我希望能够将这些新创建的Doc发布到第三方系统.
我发现UrlFetchApp我可以发送文件.但是,我在发送正确的标头值时遇到问题.
我的请求看起来像这样:
var file = DriveApp.getFileById(fileId);
var body = {
"file": file.getAs(MimeType.PDF)
};
var headers = {
'Content-Disposition': 'attachment; filename="'+ file.getName() +'"',
'Content-Length': file.getSize()
};
Run Code Online (Sandbox Code Playgroud)
我调用UrlFetchApp.fetch(url,options)时的选项如下:
({
method:"POST",
headers:{
'Content-Disposition':"attachment; filename=\"My Merge Development_row_1.pdf\"",
'Content-Length':90665,
Authorization:"Bearer TOKEN"
},
contentType:"application/x-www-form-urlencoded",
muteHttpExceptions:true,
payload:{file:Blob}
})
Run Code Online (Sandbox Code Playgroud)
我发送文件的API需要'Content-Length'标头.但是,当我尝试为'Content-Length'标题设置值时,我收到了Apps脚本错误,"Attribute provided with invalid value: Header:Content-Length".如果我没有设置Content-Length标头,那么API会响应Content-Length和文件大小不匹配.
关于我如何设置Content-Length标题的任何想法,以便我可以POST文件?
希望对 Google 所描述的 Google Apps 脚本属性配额进行一些澄清。配额和限制可在此处找到:
https://developers.google.com/apps-script/guides/services/quotas
该页面列出了每天 50,000 次对“属性”的写入。我相信这对于每个用户来说都是如此。这是针对该用户的所有附加组件吗?那么,从理论上讲,我的附加组件将与所有其他附加组件共享用户的属性写入配额?
我的另一个问题是属性总存储量。该页面列出了每个属性存储 500 kb 的限制。什么是房产商店?这是否意味着每个附加组件都有一个属性存储并且只能保存 500kB 的任何类型的属性?或者,这是否意味着每个附加组件都有一个用于用户属性的属性存储,另一个用于文档属性的属性存储,以及另一个用于脚本属性的属性存储 - 每个都有 500kB 的限制?
或者,在这种情况下,属性存储还有另一个定义吗?