feat: add file_hash column and related index to files table; refactor Telegram API utilities for improved file handling
This commit is contained in:
+3
-10
@@ -14,18 +14,13 @@ import {
|
||||
getFileType,
|
||||
} from '../utils/file';
|
||||
import logger from '../utils/logger';
|
||||
import { forwardToStorage, getBot } from '../utils/telegram';
|
||||
import { forwardToStorage } from '../utils/telegram';
|
||||
|
||||
type UploadedFile = NewFile & {
|
||||
createdAt: Date;
|
||||
updatedAt: Date;
|
||||
};
|
||||
|
||||
type TelegramFileLookup = {
|
||||
mime_type?: string;
|
||||
file_size?: number;
|
||||
};
|
||||
|
||||
interface JsonUploadPayload {
|
||||
file?: unknown;
|
||||
fileName?: string;
|
||||
@@ -57,8 +52,6 @@ const performUpload = async (
|
||||
await Bun.write(tempPath, fileBuffer);
|
||||
const fileStream = createReadStream(tempPath);
|
||||
const result = await forwardToStorage(fileStream, fileName, getFileType(mimeType, fileName));
|
||||
const bot = getBot();
|
||||
const fileInfo = (await bot.telegram.getFile(result.telegramFileId)) as TelegramFileLookup;
|
||||
|
||||
return {
|
||||
publicId: nanoid(),
|
||||
@@ -67,8 +60,8 @@ const performUpload = async (
|
||||
storageChatId: config.storageChatId,
|
||||
storageMessageId: result.storageMessageId,
|
||||
fileName,
|
||||
mimeType: fileInfo.mime_type || mimeType || 'application/octet-stream',
|
||||
sizeBytes: fileInfo.file_size || fileBuffer.byteLength,
|
||||
mimeType: mimeType || 'application/octet-stream',
|
||||
sizeBytes: fileBuffer.byteLength,
|
||||
fileType: getFileType(mimeType, fileName),
|
||||
uploaderId: 0,
|
||||
fileHash: computeHash(fileBuffer),
|
||||
|
||||
Reference in New Issue
Block a user