파일 다운로드 임시 구현

This commit is contained in:
static
2025-01-05 20:45:31 +09:00
parent 9ca6444bc9
commit c580556740
7 changed files with 137 additions and 18 deletions

View File

@@ -0,0 +1,42 @@
<script lang="ts">
import FileSaver from "file-saver";
import { TopBar } from "$lib/components";
import { masterKeyStore } from "$lib/stores";
import { decryptFileMetadata, requestFileDownload } from "./service";
let { data } = $props();
let metadata = $state<Awaited<ReturnType<typeof decryptFileMetadata>> | undefined>();
$effect(() => {
if ($masterKeyStore) {
decryptFileMetadata(data.metadata, $masterKeyStore.get(data.metadata.mekVersion)!.key).then(
async (_metadata) => {
metadata = _metadata;
const file = await requestFileDownload(
data.id,
data.metadata.contentIv,
_metadata.dataKey,
);
// TODO: Preview
const blob = new Blob([file]);
FileSaver.saveAs(blob, metadata.name);
},
);
}
});
</script>
<svelte:head>
<title>파일</title>
</svelte:head>
{#if metadata}
<TopBar title={metadata.name} />
{:else}
<TopBar />
{/if}