chore: fix evernote attachment imports causing CSP issues [skip e2e]
This commit is contained in:
@@ -7,6 +7,7 @@ import MD5 from 'crypto-js/md5'
|
||||
import Base64 from 'crypto-js/enc-base64'
|
||||
import { Converter, UploadFileFn } from '../Converter'
|
||||
import { ConversionResult } from '../ConversionResult'
|
||||
import { getBlobFromBase64 } from '../Utils'
|
||||
dayjs.extend(customParseFormat)
|
||||
dayjs.extend(utc)
|
||||
|
||||
@@ -330,8 +331,7 @@ export class EvernoteConverter implements Converter {
|
||||
}
|
||||
|
||||
async getFileFromResource(resource: EvernoteResource): Promise<File> {
|
||||
const response = await fetch(resource.data)
|
||||
const blob = await response.blob()
|
||||
const blob = getBlobFromBase64(resource.data, resource.mimeType)
|
||||
return new File([blob], resource.fileName, { type: resource.mimeType })
|
||||
}
|
||||
|
||||
|
||||
@@ -11,3 +11,20 @@ export const readFileAsText = (file: File): Promise<string> => {
|
||||
reader.readAsText(file)
|
||||
})
|
||||
}
|
||||
|
||||
export const getBlobFromBase64 = (b64Data: string, contentType = '') => {
|
||||
const byteString = atob(b64Data.split(',')[1])
|
||||
|
||||
if (!contentType) {
|
||||
contentType = b64Data.split(',')[0].split(':')[1].split(';')[0]
|
||||
}
|
||||
|
||||
const buffer = new ArrayBuffer(byteString.length)
|
||||
const view = new Uint8Array(buffer)
|
||||
for (let i = 0; i < byteString.length; i++) {
|
||||
view[i] = byteString.charCodeAt(i)
|
||||
}
|
||||
|
||||
const blob = new Blob([buffer], { type: contentType })
|
||||
return blob
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user