resume-parser-mcp
Version:
To install dependencies:
37 lines (36 loc) • 1.16 kB
JavaScript
import axios from 'axios';
import fs from 'fs';
import path from 'path';
import { tmpdir } from 'os';
import { v4 as uuidv4 } from 'uuid';
export async function downloadFile(url) {
try {
const response = await axios({
url,
method: 'GET',
responseType: 'stream',
});
const fileExtension = path.extname(new URL(url).pathname).toLowerCase();
const tempFilePath = path.join(tmpdir(), `${uuidv4()}${fileExtension}`);
const writer = fs.createWriteStream(tempFilePath);
await new Promise((resolve, reject) => {
response.data.pipe(writer);
let error = null;
writer.on('error', (err) => {
error = err;
writer.close();
reject(err);
});
writer.on('close', () => {
if (!error) {
resolve(tempFilePath);
}
});
});
return tempFilePath;
}
catch (error) {
console.error('文件下载失败:', error?.message);
throw new Error(`无法下载文件: ${error?.message}`);
}
}