This commit is contained in:
Trym Lund Flogard
2021-06-05 13:50:02 +02:00
parent d363b4a3d0
commit b7837011bd
3 changed files with 17 additions and 14 deletions

View File

@ -162,21 +162,22 @@ export class NextcloudClient {
const fileStat = await fs.stat(file)
const fileStream = fsSync.createReadStream(file)
const fileStreamPromise = new Promise<void>((resolve, reject) => {
fileStream.on('error', e => reject(e)).on('close', () => resolve())
})
const remoteStream = this.davClient.createWriteStream(remoteFilePath, {
headers: { 'Content-Length': fileStat.size.toString() }
})
const reamteStreamPromise = new Promise<void>((resolve, reject) => {
remoteStream.on('error', e => reject(e)).on('finish', () => resolve())
})
fileStream.pipe(remoteStream)
// see: https://github.com/nodejs/node/issues/22088
const timer = setTimeout(() => {}, 20_000);
await new Promise<void>((resolve, reject) => {
fileStream.on('error', e => reject(e)).on('close', () => resolve())
})
await new Promise<void>((resolve, reject) => {
remoteStream.on('error', e => reject(e)).on('close', () => resolve())
})
await fileStreamPromise
await reamteStreamPromise
clearTimeout(timer);
return remoteFilePath