changing path
This commit is contained in:
+3
-3
@@ -19,7 +19,7 @@ export async function handleAuth(
|
||||
if (!meta) return notFound();
|
||||
|
||||
if (!meta.passwordHash) {
|
||||
return new Response(null, { status: 302, headers: { location: `/d/${rawKey}` } });
|
||||
return new Response(null, { status: 302, headers: { location: `/${rawKey}` } });
|
||||
}
|
||||
|
||||
const password = await req.formData().then(
|
||||
@@ -32,7 +32,7 @@ export async function handleAuth(
|
||||
|
||||
if (!passwordMatches(meta.passwordHash, password)) {
|
||||
log("warn", `auth failed id=${id}`);
|
||||
return new Response(null, { status: 302, headers: { location: `/d/${rawKey}?e=1` } });
|
||||
return new Response(null, { status: 302, headers: { location: `/${rawKey}?e=1` } });
|
||||
}
|
||||
|
||||
const token = makeAuthToken(rawKey, secret, AUTH_TTL_MS);
|
||||
@@ -41,5 +41,5 @@ export async function handleAuth(
|
||||
}; Max-Age=${Math.floor(AUTH_TTL_MS / 1000)}`;
|
||||
|
||||
log("info", `auth ok id=${id}`);
|
||||
return new Response(null, { status: 302, headers: { location: `/d/${rawKey}`, "set-cookie": cookie } });
|
||||
return new Response(null, { status: 302, headers: { location: `/${rawKey}`, "set-cookie": cookie } });
|
||||
}
|
||||
@@ -76,7 +76,7 @@ export async function handleUpload(
|
||||
});
|
||||
|
||||
log("info", `upload ok id=${id} size=${size} name=${JSON.stringify(originalName)}`);
|
||||
return json({ id, key, url: `/d/${key}`, originalName, size, protected: true });
|
||||
return json({ id, key, url: `/${key}`, originalName, size, protected: true });
|
||||
} catch (err) {
|
||||
await storage.delete(id);
|
||||
await storage.deletePartial(id);
|
||||
|
||||
@@ -7,6 +7,7 @@ import { handleAuth } from "./routes/auth";
|
||||
import { handleDelete } from "./routes/delete";
|
||||
import { handleDownload } from "./routes/download";
|
||||
import { handleUpload } from "./routes/upload";
|
||||
import { KEY_PATTERN } from "./security";
|
||||
import { Storage } from "./storage";
|
||||
|
||||
const cfg = loadConfig();
|
||||
@@ -113,6 +114,19 @@ async function route(req: Request, srv: Server<undefined>): Promise<Response> {
|
||||
return handleDownload(req, storage, path.slice(3), secret);
|
||||
}
|
||||
|
||||
const rootKey = path.slice(1);
|
||||
if (
|
||||
rootKey &&
|
||||
!rootKey.includes("/") &&
|
||||
KEY_PATTERN.test(rootKey) &&
|
||||
(method === "GET" || method === "HEAD")
|
||||
) {
|
||||
if (cfg.rateLimitEnabled && !limiter.check(clientIp(req, srv))) {
|
||||
return jsonError(429, "too many requests");
|
||||
}
|
||||
return handleDownload(req, storage, rootKey, secret);
|
||||
}
|
||||
|
||||
if (path.startsWith("/api/files/") && method === "DELETE") {
|
||||
if (cfg.rateLimitEnabled && !limiter.check(clientIp(req, srv))) {
|
||||
return jsonError(429, "too many requests");
|
||||
|
||||
Reference in New Issue
Block a user