我正在开发一个Google App脚本来确定远程资源的大小而不下载。代码如下
function getRemoteFileSize()
{
var params = { "method" : "head" };
var resp = UrlFetchApp.fetch("https://www.google.com/images/srpr/logo11w.png", params);
Logger.log("Remote File Size: " + resp.getAllHeaders()["Content-Length"]);
}
但是,Google App脚本似乎不支持头部请求,并且无法执行上述代码。
除了发出GET
请求之外,什么是可行的替代方案?
我对所有建议持开放态度,包括使用具有API的第三方服务
答案 0 :(得分:2)
您可以尝试通过设置“headers”高级参数来覆盖该方法:
var params = {"method" : "GET", "headers": {"X-HTTP-Method-Override": "HEAD"}};
我从来没有使用过“HEAD”,所以我无法确定这是否有效,但是我已经使用了“PATCH”方法覆盖,并且有了这个功能。
答案 1 :(得分:0)
我发现在我的情况下,我可以使用Range
标头请求0个字节,然后检查保存文件大小的响应标头:
var params = {
method: "GET",
headers: {
Range: "bytes=0-0",
},
};
var response = UrlFetchApp.fetch(fileUrl,params);
var headers = response.getHeaders();
var fileSizeString = headers['Content-Range']
var fileSize = +headers['Content-Range'].split("/")[1];
响应标头具有Content-Range=bytes 0-0/139046553
作为值,然后我可以使用它转换为整数(139046553)个字节。