fix remote files?

This commit is contained in:
Puniko 2022-12-29 23:13:38 +01:00
parent 98a845eda4
commit 8cd47bbcce
2 changed files with 5 additions and 1 deletions

View file

@ -1,3 +1,4 @@
import { URL } from 'node:url';
import * as fs from 'node:fs'; import * as fs from 'node:fs';
import * as stream from 'node:stream'; import * as stream from 'node:stream';
import * as util from 'node:util'; import * as util from 'node:util';
@ -20,6 +21,7 @@ export async function downloadUrl(url: string, path: string): Promise<void> {
const timeout = 30 * SECOND; const timeout = 30 * SECOND;
const operationTimeout = MINUTE; const operationTimeout = MINUTE;
const maxSize = config.maxFileSize || 262144000; const maxSize = config.maxFileSize || 262144000;
let filename = new URL(url).pathname.split('/').pop() || null;
const req = got.stream(url, { const req = got.stream(url, {
headers: { headers: {
@ -51,6 +53,7 @@ export async function downloadUrl(url: string, path: string): Promise<void> {
} }
const contentLength = res.headers['content-length']; const contentLength = res.headers['content-length'];
filename = res.headers['content-disposition'].split('=').pop().replace(/"/g, '');
if (contentLength != null) { if (contentLength != null) {
const size = Number(contentLength); const size = Number(contentLength);
if (size > maxSize) { if (size > maxSize) {
@ -76,6 +79,7 @@ export async function downloadUrl(url: string, path: string): Promise<void> {
} }
logger.succ(`Download finished: ${chalk.cyan(url)}`); logger.succ(`Download finished: ${chalk.cyan(url)}`);
return filename;
} }
function isPrivateIp(ip: string): boolean { function isPrivateIp(ip: string): boolean {

View file

@ -41,7 +41,7 @@ export async function uploadFromUrl({
try { try {
// write content at URL to temp file // write content at URL to temp file
await downloadUrl(url, path); name = await downloadUrl(url, path);
const driveFile = await addFile({ const driveFile = await addFile({
user, user,