added error handling for updateFileModifyDateInEXIF

This commit is contained in:
Abhinav 2021-11-11 13:11:16 +05:30
parent 9a3aa75d1e
commit 6a482c937e

View file

@ -1,5 +1,6 @@
import exifr from 'exifr';
import piexif from 'piexifjs';
import { logError } from 'utils/sentry';
import { NULL_LOCATION, Location } from './metadataService';
const EXIF_TAGS_NEEDED = [
@ -34,21 +35,26 @@ export async function updateFileModifyDateInEXIF(
fileBlob: Blob,
updatedDate: Date
) {
const fileURL = URL.createObjectURL(fileBlob);
let imageDataURL = await convertImageToDataURL(fileURL);
imageDataURL =
'data:image/jpeg;base64' +
imageDataURL.slice(imageDataURL.indexOf(','));
const exifObj = piexif.load(imageDataURL);
if (!exifObj['0th']) {
exifObj['0th'] = {};
}
exifObj['0th'][piexif.ImageIFD.DateTime] =
convertToExifDateFormat(updatedDate);
try {
const fileURL = URL.createObjectURL(fileBlob);
let imageDataURL = await convertImageToDataURL(fileURL);
imageDataURL =
'data:image/jpeg;base64' +
imageDataURL.slice(imageDataURL.indexOf(','));
const exifObj = piexif.load(imageDataURL);
if (!exifObj['0th']) {
exifObj['0th'] = {};
}
exifObj['0th'][piexif.ImageIFD.DateTime] =
convertToExifDateFormat(updatedDate);
const exifBytes = piexif.dump(exifObj);
const exifInsertedFile = piexif.insert(exifBytes, imageDataURL);
return dataURIToBlob(exifInsertedFile);
const exifBytes = piexif.dump(exifObj);
const exifInsertedFile = piexif.insert(exifBytes, imageDataURL);
return dataURIToBlob(exifInsertedFile);
} catch (e) {
logError(e, 'updateFileModifyDateInEXIF failed');
return fileBlob;
}
}
export async function convertImageToDataURL(url: string) {