PeerTube/server/lib/worker/workers/image-downloader.ts

36 lines
824 B
TypeScript

import { remove } from 'fs-extra'
import { join } from 'path'
import { processImage } from '@server/helpers/image-utils'
import { doRequestAndSaveToFile } from '@server/helpers/requests'
import { CONFIG } from '@server/initializers/config'
async function downloadImage (options: {
url: string
destDir: string
destName: string
size: { width: number, height: number }
}) {
const { url, destDir, destName, size } = options
const tmpPath = join(CONFIG.STORAGE.TMP_DIR, 'pending-' + destName)
await doRequestAndSaveToFile(url, tmpPath)
const destPath = join(destDir, destName)
try {
await processImage({ path: tmpPath, destination: destPath, newSize: size })
} catch (err) {
await remove(tmpPath)
throw err
}
return destPath
}
module.exports = downloadImage
export {
downloadImage
}