Add encoder settings

Add encoder cancel button
This commit is contained in:
René Preuß
2023-08-06 17:22:05 +02:00
parent 4ba1f1fb5f
commit 5f96ca82ea
10 changed files with 392 additions and 79 deletions

View File

@@ -1,8 +1,10 @@
import { Signal } from './encoder'
const fs = require('fs');
const https = require('https');
const {promisify} = require('util');
export async function upload(url, filename, onProgress): Promise<void> {
export async function upload(url, filename, onProgress, signal: Signal): Promise<void> {
const fileStream = fs.createReadStream(filename);
const fileStats = await promisify(fs.stat)(filename);
@@ -29,6 +31,12 @@ export async function upload(url, filename, onProgress): Promise<void> {
let uploadedBytes = 0;
fileStream.on('data', (chunk) => {
if (signal.aborted) {
console.log('upload aborted, skipping upload stream')
req.destroy();
fileStream.destroy();
return;
}
uploadedBytes += chunk.length;
onProgress(Math.round((uploadedBytes / fileStats.size) * 100));
});