add logs for read file failing

This commit is contained in:
Abhinav 2022-05-23 16:51:36 +05:30
parent b53aac4961
commit c0d50d7aaa
2 changed files with 69 additions and 50 deletions

View file

@ -22,6 +22,7 @@ import {
getUint8ArrayView,
} from '../readerService';
import { generateThumbnail } from './thumbnailService';
import { convertBytesToHumanReadable } from 'utils/billing';
const EDITED_FILE_SUFFIX = '-edited';
@ -37,34 +38,43 @@ export async function readFile(
fileTypeInfo: FileTypeInfo,
rawFile: File | ElectronFile
): Promise<FileInMemory> {
const { thumbnail, hasStaticThumbnail } = await generateThumbnail(
rawFile,
fileTypeInfo
);
logUploadInfo(`reading file data ${getFileNameSize(rawFile)} `);
let filedata: Uint8Array | DataStream;
if (!(rawFile instanceof File)) {
if (rawFile.size > MULTIPART_PART_SIZE) {
filedata = await getElectronFileStream(
rawFile,
FILE_READER_CHUNK_SIZE
);
try {
const { thumbnail, hasStaticThumbnail } = await generateThumbnail(
rawFile,
fileTypeInfo
);
logUploadInfo(`reading file data ${getFileNameSize(rawFile)} `);
let filedata: Uint8Array | DataStream;
if (!(rawFile instanceof File)) {
if (rawFile.size > MULTIPART_PART_SIZE) {
filedata = await getElectronFileStream(
rawFile,
FILE_READER_CHUNK_SIZE
);
} else {
filedata = await rawFile.arrayBuffer();
}
} else if (rawFile.size > MULTIPART_PART_SIZE) {
filedata = getFileStream(rawFile, FILE_READER_CHUNK_SIZE);
} else {
filedata = await rawFile.arrayBuffer();
filedata = await getUint8ArrayView(rawFile);
}
} else if (rawFile.size > MULTIPART_PART_SIZE) {
filedata = getFileStream(rawFile, FILE_READER_CHUNK_SIZE);
} else {
filedata = await getUint8ArrayView(rawFile);
logUploadInfo(
`read file data successfully ${getFileNameSize(rawFile)} `
);
return {
filedata,
thumbnail,
hasStaticThumbnail,
};
} catch (e) {
logError(e, 'failed to read file', {
fileSize: convertBytesToHumanReadable(rawFile.size),
});
throw e;
}
logUploadInfo(`read file data successfully ${getFileNameSize(rawFile)} `);
return {
filedata,
thumbnail,
hasStaticThumbnail,
};
}
export async function extractFileMetadata(

View file

@ -8,6 +8,7 @@ import {
LivePhotoAssets,
Metadata,
} from 'types/upload';
import { convertBytesToHumanReadable } from 'utils/billing';
import { CustomError } from 'utils/error';
import { isImageOrVideo, splitFilenameAndExtension } from 'utils/file';
import { logError } from 'utils/sentry';
@ -75,34 +76,42 @@ export async function readLivePhoto(
fileTypeInfo: FileTypeInfo,
livePhotoAssets: LivePhotoAssets
) {
const { thumbnail, hasStaticThumbnail } = await generateThumbnail(
livePhotoAssets.image,
{
exactType: fileTypeInfo.imageType,
fileType: FILE_TYPE.IMAGE,
}
);
try {
const { thumbnail, hasStaticThumbnail } = await generateThumbnail(
livePhotoAssets.image,
{
exactType: fileTypeInfo.imageType,
fileType: FILE_TYPE.IMAGE,
}
);
const image =
livePhotoAssets.image instanceof File
? await getUint8ArrayView(livePhotoAssets.image)
: await livePhotoAssets.image.arrayBuffer();
const image =
livePhotoAssets.image instanceof File
? await getUint8ArrayView(livePhotoAssets.image)
: await livePhotoAssets.image.arrayBuffer();
const video =
livePhotoAssets.video instanceof File
? await getUint8ArrayView(livePhotoAssets.video)
: await livePhotoAssets.video.arrayBuffer();
const video =
livePhotoAssets.video instanceof File
? await getUint8ArrayView(livePhotoAssets.video)
: await livePhotoAssets.video.arrayBuffer();
return {
filedata: await encodeMotionPhoto({
image,
video,
imageNameTitle: livePhotoAssets.image.name,
videoNameTitle: livePhotoAssets.video.name,
}),
thumbnail,
hasStaticThumbnail,
};
return {
filedata: await encodeMotionPhoto({
image,
video,
imageNameTitle: livePhotoAssets.image.name,
videoNameTitle: livePhotoAssets.video.name,
}),
thumbnail,
hasStaticThumbnail,
};
} catch (e) {
logError(e, 'failed to read live photo assets', {
imageSize: convertBytesToHumanReadable(livePhotoAssets.image.size),
videoSize: convertBytesToHumanReadable(livePhotoAssets.video.size),
});
throw e;
}
}
export function clusterLivePhotoFiles(mediaFiles: FileWithCollection[]) {