split FileAttribute type into 3 separate sub types

This commit is contained in:
Abhinav 2022-12-04 22:56:57 +05:30
parent 693bfc6d12
commit e216a29583
5 changed files with 37 additions and 17 deletions

View file

@ -11,7 +11,7 @@ import { SetProgressTracker } from 'components/FixLargeThumbnail';
import { getFileType } from 'services/typeDetectionService';
import { getLocalTrash, getTrashedFiles } from './trashService';
import { EncryptionResult, UploadURL } from 'types/upload';
import { fileAttribute } from 'types/file';
import { S3FileAttribute } from 'types/file';
import { USE_CF_PROXY } from 'constants/upload';
const ENDPOINT = getEndpoint();
@ -106,7 +106,7 @@ export async function uploadThumbnail(
fileKey: string,
updatedThumbnail: Uint8Array,
uploadURL: UploadURL
): Promise<fileAttribute> {
): Promise<S3FileAttribute> {
const { file: encryptedThumbnail }: EncryptionResult =
await worker.encryptThumbnail(updatedThumbnail, fileKey);
let thumbnailObjectKey: string = null;
@ -131,7 +131,7 @@ export async function uploadThumbnail(
export async function updateThumbnail(
fileID: number,
newThumbnail: fileAttribute
newThumbnail: S3FileAttribute
) {
try {
const token = getToken();

View file

@ -10,6 +10,7 @@ import {
ParsedMetadataJSONMap,
DataStream,
ElectronFile,
MetadataEncryptionResult,
} from 'types/upload';
import { splitFilenameAndExtension } from 'utils/file';
import { logError } from 'utils/sentry';
@ -105,7 +106,7 @@ export async function encryptFile(
const { file: encryptedThumbnail }: EncryptionResult =
await worker.encryptThumbnail(file.thumbnail, fileKey);
const { file: encryptedMetadata }: EncryptionResult =
const { file: encryptedMetadata }: MetadataEncryptionResult =
await worker.encryptMetadata(file.metadata, fileKey);
const encryptedKey: B64EncryptionResult = await worker.encryptToB64(

View file

@ -1,9 +1,18 @@
import { MagicMetadataCore, VISIBILITY_STATE } from 'types/magicMetadata';
import { DataStream, Metadata } from 'types/upload';
export interface fileAttribute {
encryptedData?: DataStream | Uint8Array;
objectKey?: string;
export interface FileAttribute {
encryptedData: DataStream | Uint8Array;
decryptionHeader: string;
}
export interface B64FileAttribute {
encryptedData: string;
decryptionHeader: string;
}
export interface S3FileAttribute {
objectKey: string;
decryptionHeader: string;
}
@ -36,8 +45,8 @@ export interface EnteFile {
id: number;
collectionID: number;
ownerID: number;
file: fileAttribute;
thumbnail: fileAttribute;
file: S3FileAttribute;
thumbnail: S3FileAttribute;
metadata: Metadata;
info: EnteFileInfo;
magicMetadata: FileMagicMetadata;

View file

@ -1,6 +1,6 @@
import { FILE_TYPE } from 'constants/file';
import { Collection } from 'types/collection';
import { fileAttribute } from 'types/file';
import { B64FileAttribute, FileAttribute, S3FileAttribute } from 'types/file';
export interface DataStream {
stream: ReadableStream<Uint8Array>;
@ -12,7 +12,12 @@ export function isDataStream(object: any): object is DataStream {
}
export interface EncryptionResult {
file: fileAttribute;
file: FileAttribute;
key: string;
}
export interface MetadataEncryptionResult {
file: B64FileAttribute;
key: string;
}
@ -126,12 +131,17 @@ export interface EncryptedFile {
fileKey: B64EncryptionResult;
}
export interface ProcessedFile {
file: fileAttribute;
thumbnail: fileAttribute;
metadata: fileAttribute;
file: FileAttribute;
thumbnail: FileAttribute;
metadata: B64FileAttribute;
localID: number;
}
export interface BackupedFile extends Omit<ProcessedFile, 'localID'> {}
export interface BackupedFile {
file: S3FileAttribute;
thumbnail: S3FileAttribute;
metadata: B64FileAttribute;
}
export interface UploadFile extends BackupedFile {
collectionID: number;

View file

@ -1,7 +1,7 @@
import { SelectedState } from 'types/gallery';
import {
B64FileAttribute,
EnteFile,
fileAttribute,
FileMagicMetadataProps,
FilePublicMagicMetadataProps,
} from 'types/file';
@ -199,7 +199,7 @@ export async function decryptFile(file: EnteFile, collectionKey: string) {
file.keyDecryptionNonce,
collectionKey
);
const encryptedMetadata = file.metadata as unknown as fileAttribute;
const encryptedMetadata = file.metadata as unknown as B64FileAttribute;
file.metadata = await worker.decryptMetadata(
encryptedMetadata.encryptedData,
encryptedMetadata.decryptionHeader,