完善kv中无记录时的处理逻辑

This commit is contained in:
MarSeventh
2024-09-17 14:05:04 +08:00
parent 62c9fda84a
commit d2ce008e5d

View File

@@ -41,11 +41,8 @@ export async function onRequest(context) { // Contents of context object
return new Response('Error: Please configure KV database', { status: 500 });
}
const imgRecord = await env.img_url.getWithMetadata(params.id);
// 图片是否存在
if (imgRecord === null || imgRecord?.metadata === null) {
return new Response('Error: Image not found', { status: 404 });
}
// 如果meatdata不存在只可能是之前未设置KV且存储在Telegraph上的图片那么在后面获取时会返回404错误此处不用处理
const fileName = imgRecord.metadata?.FileName || params.id;
const encodedFileName = encodeURIComponent(fileName);
const fileType = imgRecord.metadata?.FileType || null;
@@ -80,6 +77,8 @@ export async function onRequest(context) { // Contents of context object
const response = await getFileContent(request);
if (response === null) {
return new Response('Error: Failed to fetch image', { status: 500 });
} else if (response.status === 404) {
return new Response('Error: Image Not Found', { status: 404 });
}
try {
@@ -153,6 +152,8 @@ async function getFileContent(request, max_retries = 2) {
});
if (response.ok || response.status === 304) {
return response;
} else if (response.status === 404) {
return new Response('Error: Image Not Found', { status: 404 });
} else {
retries++;
}