wrap electron file in getUint8ArrayView function
This commit is contained in:
parent
593eee8992
commit
381bd9ab95
|
@ -1,7 +1,9 @@
|
|||
import { ElectronFile } from 'types/upload';
|
||||
import { logError } from 'utils/sentry';
|
||||
|
||||
export async function getUint8ArrayView(file: Blob): Promise<Uint8Array> {
|
||||
export async function getUint8ArrayView(
|
||||
file: Blob | ElectronFile
|
||||
): Promise<Uint8Array> {
|
||||
try {
|
||||
return new Uint8Array(await file.arrayBuffer());
|
||||
} catch (e) {
|
||||
|
|
|
@ -22,7 +22,6 @@ import {
|
|||
getUint8ArrayView,
|
||||
} from '../readerService';
|
||||
import { generateThumbnail } from './thumbnailService';
|
||||
import { convertBytesToHumanReadable } from 'utils/billing';
|
||||
|
||||
const EDITED_FILE_SUFFIX = '-edited';
|
||||
|
||||
|
@ -38,43 +37,34 @@ export async function readFile(
|
|||
fileTypeInfo: FileTypeInfo,
|
||||
rawFile: File | ElectronFile
|
||||
): Promise<FileInMemory> {
|
||||
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);
|
||||
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 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;
|
||||
} 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,
|
||||
};
|
||||
}
|
||||
|
||||
export async function extractFileMetadata(
|
||||
|
|
|
@ -8,7 +8,6 @@ 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';
|
||||
|
@ -76,42 +75,28 @@ export async function readLivePhoto(
|
|||
fileTypeInfo: FileTypeInfo,
|
||||
livePhotoAssets: LivePhotoAssets
|
||||
) {
|
||||
try {
|
||||
const { thumbnail, hasStaticThumbnail } = await generateThumbnail(
|
||||
livePhotoAssets.image,
|
||||
{
|
||||
exactType: fileTypeInfo.imageType,
|
||||
fileType: FILE_TYPE.IMAGE,
|
||||
}
|
||||
);
|
||||
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 = await getUint8ArrayView(livePhotoAssets.image);
|
||||
|
||||
const video =
|
||||
livePhotoAssets.video instanceof File
|
||||
? await getUint8ArrayView(livePhotoAssets.video)
|
||||
: await livePhotoAssets.video.arrayBuffer();
|
||||
const video = await getUint8ArrayView(livePhotoAssets.video);
|
||||
|
||||
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;
|
||||
}
|
||||
return {
|
||||
filedata: await encodeMotionPhoto({
|
||||
image,
|
||||
video,
|
||||
imageNameTitle: livePhotoAssets.image.name,
|
||||
videoNameTitle: livePhotoAssets.video.name,
|
||||
}),
|
||||
thumbnail,
|
||||
hasStaticThumbnail,
|
||||
};
|
||||
}
|
||||
|
||||
export function clusterLivePhotoFiles(mediaFiles: FileWithCollection[]) {
|
||||
|
|
Loading…
Reference in a new issue