Actually do what coconut was asking me to
This commit is contained in:
@ -1,12 +1,15 @@
|
||||
import { AwsClient } from "aws4fetch";
|
||||
import { jsonError } from "../common.js";
|
||||
|
||||
export async function onRequestPost(context: RequestContext) {
|
||||
const { searchParams } = new URL(context.request.url);
|
||||
const id = searchParams.get("attachment");
|
||||
const attachment = searchParams.get("attachment");
|
||||
const token = searchParams.get("token");
|
||||
|
||||
if (!id || !token) return jsonError("Invalid report id or token", 400);
|
||||
if (!attachment || !token)
|
||||
return jsonError("Invalid report id or token", 400);
|
||||
|
||||
const id = attachment.replace(/\.mp4$/, "");
|
||||
const coconutData: { token: string } | null = await context.env.DATA.get(
|
||||
`coconutjob_${id}`,
|
||||
{ type: "json" },
|
||||
@ -19,6 +22,11 @@ export async function onRequestPost(context: RequestContext) {
|
||||
|
||||
await context.env.DATA.delete(`coconutjob_${id}`);
|
||||
|
||||
const aws = new AwsClient({
|
||||
accessKeyId: context.env.R2_ACCESS_KEY,
|
||||
secretAccessKey: context.env.R2_SECRET_KEY,
|
||||
});
|
||||
|
||||
const { event } = await context.request.json();
|
||||
|
||||
if (event === "job.failed") {
|
||||
@ -37,6 +45,17 @@ export async function onRequestPost(context: RequestContext) {
|
||||
},
|
||||
method: "POST",
|
||||
});
|
||||
} else {
|
||||
const R2_URL = `https://car-crushers.${context.env.R2_ZONE}.r2.cloudflarestorage.com`;
|
||||
await aws.fetch(`${R2_URL}/${id}`, {
|
||||
headers: {
|
||||
"x-amz-copy-source": `car-crushers/${attachment}`,
|
||||
},
|
||||
method: "PUT",
|
||||
});
|
||||
await aws.fetch(`${R2_URL}/${attachment}`, {
|
||||
method: "DELETE",
|
||||
});
|
||||
}
|
||||
|
||||
return new Response(null, {
|
||||
|
Reference in New Issue
Block a user