30 lines
765 B
JavaScript
30 lines
765 B
JavaScript
import { createErrorResponse } from '../../utils';
|
|
|
|
export async function onRequestGet(context) {
|
|
try {
|
|
const { env, params } = context;
|
|
const { filename } = params;
|
|
|
|
if (!filename) {
|
|
return createErrorResponse("Filename is required", 400);
|
|
}
|
|
|
|
const key = "avatars/" + filename;
|
|
const object = await env.MY_BUCKET.get(key);
|
|
|
|
if (object === null) {
|
|
return new Response("Object Not Found", { status: 404 });
|
|
}
|
|
|
|
const headers = new Headers();
|
|
object.writeHttpMetadata(headers);
|
|
headers.set("etag", object.httpEtag);
|
|
|
|
return new Response(object.body, {
|
|
headers,
|
|
});
|
|
} catch (error) {
|
|
console.error("Avatar retrieval error:", error);
|
|
return createErrorResponse("Server Error", 500);
|
|
}
|
|
} |