79769520

Date: 2025-09-19 12:54:20
Score: 0.5
Natty:
Report link

Use getObject instead of presignedGetObject.

export const getFile = async (bucket: string, fileName: string): Promise<string> => {
    const buffer = await (new Promise((resolve, reject) => {
        const chunks: Buffer[] = [];

        minioClient.getObject(bucket, fileName, (err, dataStream) => {
            if (err) {
                return reject(err);
            }

            dataStream.on('data', (chunk) => {
                chunks.push(chunk);
            });

            dataStream.on('end', () => {
                resolve(Buffer.concat(chunks as any));
            });

            dataStream.on('error', (error) => {
                reject(error);
            });
        });
    }) as Promise<Buffer>);

    const base64 = buffer.toString('base64');

    const extension = fileName.split('.').pop()?.toLowerCase();
    const mimeType = getMimeType(extension);

    const dataUrl = `data:${mimeType};base64,${base64}`;

    return dataUrl;
}

For returning to file object use this function.

export const linkToFile = async (blobUrl: string, fileName: string) => {
  const response = await fetch(blobUrl);
  const blob = await response.blob();
  const file = new File([blob], `${fileName}.${blob.type.split("/").pop()}`, { type: blob.type });

  return file;
};

@Lutwrld

Reasons:
  • Contains signature (1):
  • Long answer (-1):
  • Has code block (-0.5):
  • Low reputation (1):
Posted by: Lutwrld