From 4622a36f1bb152d2d94f8bbdfe6f605722f0c272 Mon Sep 17 00:00:00 2001 From: SebClem Date: Tue, 3 May 2022 22:47:29 +0200 Subject: [PATCH] :ambulance: Add missing 'content-length' header (possible fix for #135) --- .../nextcloud_backup/tools/hassioApiTools.js | 20 +++++++++---------- .../opt/nextcloud_backup/tools/webdavTools.js | 6 ++++-- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/nextcloud_backup/rootfs/opt/nextcloud_backup/tools/hassioApiTools.js b/nextcloud_backup/rootfs/opt/nextcloud_backup/tools/hassioApiTools.js index 21d01ba..537bf0a 100644 --- a/nextcloud_backup/rootfs/opt/nextcloud_backup/tools/hassioApiTools.js +++ b/nextcloud_backup/rootfs/opt/nextcloud_backup/tools/hassioApiTools.js @@ -22,7 +22,7 @@ function getVersion() { return new Promise((resolve, reject) => { let status = statusTools.getStatus(); let option = { - headers: { "Authorization": `Bearer ${token}` }, + headers: { "authorization": `Bearer ${token}` }, responseType: "json", }; @@ -48,7 +48,7 @@ function getAddonList() { return new Promise((resolve, reject) => { let status = statusTools.getStatus(); let option = { - headers: { "Authorization": `Bearer ${token}` }, + headers: { "authorization": `Bearer ${token}` }, responseType: "json", }; @@ -141,7 +141,7 @@ function getSnapshots() { return new Promise((resolve, reject) => { let status = statusTools.getStatus(); let option = { - headers: { "Authorization": `Bearer ${token}` }, + headers: { "authorization": `Bearer ${token}` }, responseType: "json", }; @@ -215,7 +215,7 @@ function dellSnap(id) { checkSnap(id) .then(() => { let option = { - headers: { "Authorization": `Bearer ${token}` }, + headers: { "authorization": `Bearer ${token}` }, responseType: "json", }; @@ -235,7 +235,7 @@ function dellSnap(id) { function checkSnap(id) { return new Promise((resolve, reject) => { let option = { - headers: { "Authorization": `Bearer ${token}` }, + headers: { "authorization": `Bearer ${token}` }, responseType: "json", }; @@ -258,7 +258,7 @@ function createNewBackup(name) { getAddonToBackup().then((addons) => { let folders = getFolderToBackup(); let option = { - headers: { "Authorization": `Bearer ${token}` }, + headers: { "authorization": `Bearer ${token}` }, responseType: "json", timeout: { response: create_snap_timeout @@ -332,7 +332,7 @@ function uploadSnapshot(path) { let options = { body: form, - headers: { "Authorization": `Bearer ${token}` }, + headers: { "authorization": `Bearer ${token}` }, }; got.stream @@ -386,7 +386,7 @@ function stopAddons() { statusTools.setStatus(status); let promises = []; let option = { - headers: { "Authorization": `Bearer ${token}` }, + headers: { "authorization": `Bearer ${token}` }, responseType: "json", }; let addons_slug = settingsTools.getSettings().auto_stop_addon @@ -426,7 +426,7 @@ function startAddons() { statusTools.setStatus(status); let promises = []; let option = { - headers: { "Authorization": `Bearer ${token}` }, + headers: { "authorization": `Bearer ${token}` }, responseType: "json", }; let addons_slug = settingsTools.getSettings().auto_stop_addon @@ -473,7 +473,7 @@ function publish_state(state) { // let option = { - // headers: { "Authorization": `Bearer ${token}` }, + // headers: { "authorization": `Bearer ${token}` }, // responseType: "json", // json: data_error_sensor // }; diff --git a/nextcloud_backup/rootfs/opt/nextcloud_backup/tools/webdavTools.js b/nextcloud_backup/rootfs/opt/nextcloud_backup/tools/webdavTools.js index 353bd7e..2dff0ad 100644 --- a/nextcloud_backup/rootfs/opt/nextcloud_backup/tools/webdavTools.js +++ b/nextcloud_backup/rootfs/opt/nextcloud_backup/tools/webdavTools.js @@ -214,6 +214,7 @@ class WebdavTools { statusTools.setStatus(status); logger.info("Uploading snap..."); let tmpFile = `./temp/${id}.tar`; + let stats = fs.statSync(tmpFile); let stream = fs.createReadStream(tmpFile); let conf = this.getConf(); let options = { @@ -221,7 +222,8 @@ class WebdavTools { // username: this.username, // password: encodeURIComponent(this.password), headers: { - 'Authorization': 'Basic ' + Buffer.from(this.username + ':' + this.password).toString('base64') + 'authorization': 'Basic ' + Buffer.from(this.username + ':' + this.password).toString('base64'), + 'content-length': String(stats.size) } }; if (conf.ssl === "true") { @@ -321,7 +323,7 @@ class WebdavTools { let conf = this.getConf(); let options = { headers: { - 'Authorization': 'Basic ' + Buffer.from(this.username + ':' + this.password).toString('base64') + 'authorization': 'Basic ' + Buffer.from(this.username + ':' + this.password).toString('base64') } }; if (conf.ssl === "true") {