파일 및 썸네일 다운로드 Endpoint의 핸들러를 하나로 통합

This commit is contained in:
static
2026-01-12 05:04:07 +09:00
parent 614d0e74b4
commit 594c3654c9
5 changed files with 39 additions and 84 deletions

View File

@@ -1,7 +1,7 @@
export const parseRangeHeader = (rangeHeader: string | null) => {
if (!rangeHeader) return undefined;
export const parseRangeHeader = (value: string | null) => {
if (!value) return undefined;
const firstRange = rangeHeader.split(",")[0]!.trim();
const firstRange = value.split(",")[0]!.trim();
const parts = firstRange.replace(/bytes=/, "").split("-");
return {
start: parts[0] ? parseInt(parts[0], 10) : undefined,
@@ -12,3 +12,11 @@ export const parseRangeHeader = (rangeHeader: string | null) => {
export const getContentRangeHeader = (range?: { start: number; end: number; total: number }) => {
return range && { "Content-Range": `bytes ${range.start}-${range.end}/${range.total}` };
};
export const parseContentDigestHeader = (value: string | null) => {
if (!value) return undefined;
const firstDigest = value.split(",")[0]!.trim();
const match = firstDigest.match(/^sha-256=:([A-Za-z0-9+/=]+):$/);
return match?.[1];
};