Shu*_*oni 4 javascript google-apps-script
实际上我不知道如何发出头部请求并读取内容长度。我尝试编写这个函数:
function getfilesize(url) {
var msg = '';
var response;
try {
response = UrlFetchApp.fetch(url, {
// muteHttpExceptions: true,
// validateHttpsCertificates: false,
followRedirects: true // Default is true anyway.
});
catch(e) {
return e.toString();
}
var headers = response.getHeaders();
var content_length = NaN;
for (var key in headers) {
if (key.toLowerCase() == 'Content-Length'.toLowerCase()) {
content_length = parseInt(headers[key], 10);
break;
}
}
return content length;
}
Run Code Online (Sandbox Code Playgroud)
但它返回一个值 1.81619173E8
for 173mb
in 60 sec
。
任何人都可以建议另一种使用 google apps 脚本更快地完成此操作的方法吗?
您的代码可能是正确的。即1.81619173E8
1816191730字节,即173MB。Content-Length
始终以字节为单位。
要将其转换为 MB,只需除以 1024 两次(一次将其转换为 KB,再一次将其转换为 MB)。
content_length = parseInt(headers[key], 10) / 1024 / 1024;
Run Code Online (Sandbox Code Playgroud)
对于更改请求类型,看起来fetch()
不会HEAD
直接接受,但您可以使用X-HTTP-Method
标头来覆盖它:
response = UrlFetchApp.fetch(url, {
method: 'GET',
headers: {'X-HTTP-Method-Override': 'HEAD'},
followRedirects: true // Default is true anyway.
});
Run Code Online (Sandbox Code Playgroud)
这应该让它使用 HEAD 而不是 GET。
归档时间: |
|
查看次数: |
7923 次 |
最近记录: |