| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 
 | import os from 'os';import fs from 'fs';
 import https from 'https';
 
 async function downloadFileFromURL(url, fileLocation) {
 return await new Promise((resolve, reject) => {
 https
 .get(url, (response) => {
 const code = response.statusCode ?? 0;
 
 if (code >= 400) {
 return reject(new Error(response.statusMessage));
 }
 
 // 處理重定向
 if (code > 300 && code < 400 && !!response.headers.location) {
 return await downloadFile(response.headers.location);
 }
 
 // 將文件保存到磁碟
 const fileWriter = fs
 .createWriteStream(fileLocation)
 .on('finish', () => {
 resolve({
 fileLocation,
 contentType: response.headers['content-type'],
 });
 });
 
 response.pipe(fileWriter);
 })
 .on('error', (error) => {
 reject(error);
 });
 });
 }
 
 const imageUrl = 'https://.... bla bla';
 const fileLocation = os.tmpdir() + '/' + rnd(10, rnd.alphaLower);
 
 await downloadFileFromURL(imageUrl, fileLocation);
 
 |