fix: requested changes

This commit is contained in:
JoaquinOlivero
2024-08-03 23:21:31 +00:00
parent 4b18817893
commit 7369802146
2 changed files with 45 additions and 7 deletions

View File

@@ -53,7 +53,15 @@ class ImageProxy {
}
} catch (e) {
if (e.code === 'ENOENT') {
logger.error(e.message);
logger.error('Directory not found', {
label: 'Image Cache',
message: e.message,
});
} else {
logger.error('Failed to read directory', {
label: 'Image Cache',
message: e.message,
});
}
}
@@ -177,12 +185,18 @@ class ImageProxy {
try {
const directory = join(this.getCacheDirectory(), cacheKey);
const files = await promises.readdir(directory);
await promises.rm(directory, { recursive: true });
logger.info(`Cleared ${path} image from cache 'avatar'`, {
logger.info(`Cleared ${files[0]} image from cache 'avatar'`, {
label: 'Image Cache',
});
} catch (e) {
logger.error(e.message, { label: 'Image Cache' });
logger.error('Failed to clear cached image', {
label: 'Image Cache',
message: e.message,
});
}
}
@@ -236,10 +250,10 @@ class ImageProxy {
const arrayBuffer = await response.arrayBuffer();
const buffer = Buffer.from(arrayBuffer);
const extension = (response.headers.get('content-type') ?? '').replace(
'image/',
''
const extension = this.getMimeExtension(
response.headers.get('content-type') ?? ''
);
let maxAge = Number(
(response.headers.get('cache-control') ?? '0').split('=')[1]
);
@@ -315,6 +329,31 @@ class ImageProxy {
private getCacheDirectory() {
return path.join(baseCacheDirectory, this.key);
}
private getMimeExtension(mime: string): string {
switch (mime) {
case 'image/png':
return 'png';
case 'image/jpeg':
return 'jpeg';
case 'image/jpg':
return 'jpg';
case 'image/apng':
return 'apng';
case 'image/gif':
return 'gif';
case 'image/vnd.microsoft.icon':
return 'ico';
case 'image/tiff':
return 'tiff';
case 'image/webp':
return 'webp';
default:
break;
}
return '';
}
}
export default ImageProxy;

View File

@@ -4,7 +4,6 @@ import type { User } from '@app/hooks/useUser';
import { Permission, useUser } from '@app/hooks/useUser';
import defineMessages from '@app/utils/defineMessages';
import { CogIcon, UserIcon } from '@heroicons/react/24/solid';
// import Image from 'next/image';
import Link from 'next/link';
import { useIntl } from 'react-intl';