diff options
| author | Adam Soltys <[email protected]> | 2024-01-18 17:33:11 +0000 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2024-01-18 17:33:11 +0000 |
| commit | 5eca77c3571ab0b929bdb36aed84ff7781e20e07 (patch) | |
| tree | bf8a16a168b466026acd64953dd3a9dc95db1858 | |
| parent | 3563e3ce82200abbdc06b3ffb832e2ba6cf7f659 (diff) | |
| download | coinos-server-5eca77c3571ab0b929bdb36aed84ff7781e20e07.tar.gz coinos-server-5eca77c3571ab0b929bdb36aed84ff7781e20e07.zip | |
err logs
| -rw-r--r-- | lib/upload.js | 43 | ||||
| -rw-r--r-- | lib/utils.js | 4 |
2 files changed, 27 insertions, 20 deletions
diff --git a/lib/upload.js b/lib/upload.js index dc311922..5a91caa4 100644 --- a/lib/upload.js +++ b/lib/upload.js @@ -6,8 +6,9 @@ import path from "path"; import sharp from "sharp"; import { pipeline } from "stream"; import { g, s, db } from "$lib/db"; -import { fail } from "$lib/utils"; +import { bail, fail } from "$lib/utils"; import crypto from "crypto"; +import { err } from "$lib/logging"; async function getSha256Hash(stream) { return new Promise((resolve, reject) => { @@ -28,30 +29,38 @@ async function getSha256Hash(stream) { } export default async (req, res) => { - let { - params: { type }, - } = req; + try { + let { + params: { type }, + } = req; - let width = type === "banner" ? 1920 : 240; + let width = type === "banner" ? 1920 : 240; - let data = await req.file(); - let s1 = new Clone(data.file); - let s2 = new Clone(data.file); + let data = await req.file(); + let s1 = new Clone(data.file); + let s2 = new Clone(data.file); - let [format, ext] = (await fileTypeFromStream(s1)).mime.split("/"); + let [format, ext] = (await fileTypeFromStream(s1)).mime.split("/"); - if (format !== "image" && !["jpg", "jpeg", "png"].includes(ext)) - fail("unsupported file type"); + if (format !== "image" && !["jpg", "jpeg", "png"].includes(ext)) + fail("unsupported file type"); - let t = sharp().rotate().resize(width).webp(); + let t = sharp().rotate().resize(width).webp(); - let processedBuffer = await streamToBuffer(s2.pipe(t)); - let hash = crypto.createHash("sha256").update(processedBuffer).digest("hex"); + let processedBuffer = await streamToBuffer(s2.pipe(t)); + let hash = crypto + .createHash("sha256") + .update(processedBuffer) + .digest("hex"); - let filePath = `/app/data/uploads/${hash}.webp`; - fs.writeFileSync(filePath, processedBuffer); + let filePath = `/app/data/uploads/${hash}.webp`; + fs.writeFileSync(filePath, processedBuffer); - res.send({ hash }); + res.send({ hash }); + } catch (e) { + err("problem uploading", e.message); + bail(res, e.message); + } }; function streamToBuffer(stream) { diff --git a/lib/utils.js b/lib/utils.js index d286d093..e6aba14a 100644 --- a/lib/utils.js +++ b/lib/utils.js @@ -66,7 +66,5 @@ export let fields = [ ]; export let getUser = async (username) => { - let user = await migrate(username); - if (!user || username === "undefined") fail(`user ${username} not found`); - return user; + return migrate(username); }; |
