我已经成功地使用Google脚本成功解压缩了一个普通的zip文件。但是,我使用的程序输出使用7zip压缩的某些文件。有没有一种方法可以在Google脚本中解压缩7zip文件?
谢谢!
发布于 2019-12-31 09:21:15
发布于 2021-05-05 15:04:21
也许您可以先使用cloudconvert (每天最多25个转换)尝试转换为zip文件( https://cloudconvert.com/api/v2/jobs/builder )。
端点
POST https://api.cloudconvert.com/v2/jobs
请求体
{
"tasks": {
"import-1": {
"operation": "import/url",
"url": "https://notepad-plus-plus.org/repository/7.x/7.0/npp.7.bin.minimalist.x64.7z"
},
"task-1": {
"operation": "convert",
"input_format": "7z",
"output_format": "zip",
"engine": "archivetool",
"input": [
"import-1"
]
},
"export-1": {
"operation": "export/url",
"input": [
"task-1"
],
"inline": false,
"archive_multiple_files": false
}
}
}创建新的API键: https://cloudconvert.com/dashboard/api/v2/keys
Google AppScript:
function cloudConvert7ztoZip() {
// Make a POST request with a JSON payload.
var data = {
"tasks": {
"import-1": {
"operation": "import/url",
"url": "https://notepad-plus-plus.org/repository/7.x/7.0/npp.7.bin.minimalist.x64.7z"
},
"task-1": {
"operation": "convert",
"input_format": "7z",
"output_format": "zip",
"engine": "archivetool",
"input": [
"import-1"
]
},
"export-1": {
"operation": "export/url",
"input": [
"task-1"
],
"inline": true,
"archive_multiple_files": true
}
}
}
var headers = {
'Authorization': 'Bearer CLOUDCONVERT API KEY'
};
var options = {
'method' : 'post',
'contentType': 'application/json',
'headers': headers,
// Convert the JavaScript object to a JSON string.
'payload' : JSON.stringify(data)
};
var response = JSON.parse(UrlFetchApp.fetch('https://api.cloudconvert.com/v2/jobs', options));
var dataID = response.data.id;
var options2= = {
'method' : 'get',
'contentType': 'application/json',
'headers': headers,
};
// if the file is too big wait a few seconds
// Utilities.sleep(3000);
var urlStatus = 'https://api.cloudconvert.com/v2/jobs/'+dataID+'/wait'
var conversionStatus = JSON.parse(UrlFetchApp.fetch(urlStatus, options2));
Logger.log(conversionStatus.data.tasks[0].result.files);
}参考资料:
https://cloudconvert.com/api/v2
https://developers.google.com/apps-script/reference/url-fetch/url-fetch-app#fetch(String,Object)
https://developers.google.com/apps-script/reference/utilities/utilities?hl=en#sleep(Integer)
https://stackoverflow.com/questions/59537534
复制相似问题