사소한 리팩토링 2

This commit is contained in:
static
2025-07-12 04:57:15 +09:00
parent 1304cc3868
commit 0d35f0b607
8 changed files with 32 additions and 50 deletions

View File

@@ -11,7 +11,11 @@ import {
downloadFile,
} from "$lib/modules/file";
import { getThumbnailUrl } from "$lib/modules/thumbnail";
import type { FileThumbnailInfoResponse, FileListResponse } from "$lib/server/schemas";
import type {
FileThumbnailInfoResponse,
FileThumbnailUploadRequest,
FileListResponse,
} from "$lib/server/schemas";
export const requestFileDownload = async (
fileId: number,
@@ -26,6 +30,24 @@ export const requestFileDownload = async (
return fileBuffer;
};
export const requestFileThumbnailUpload = async (
fileId: number,
dataKeyVersion: Date,
thumbnailEncrypted: { ciphertext: ArrayBuffer; iv: string },
) => {
const form = new FormData();
form.set(
"metadata",
JSON.stringify({
dekVersion: dataKeyVersion.toISOString(),
contentIv: thumbnailEncrypted.iv,
} satisfies FileThumbnailUploadRequest),
);
form.set("content", new Blob([thumbnailEncrypted.ciphertext]));
return await fetch(`/api/file/${fileId}/thumbnail/upload`, { method: "POST", body: form });
};
export const requestFileThumbnailDownload = async (fileId: number, dataKey: CryptoKey) => {
const cache = await getFileThumbnailCache(fileId);
if (cache) return cache;