split FileAttribute type into 3 separate sub types
This commit is contained in:
parent
693bfc6d12
commit
e216a29583
|
@ -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();
|
||||
|
|
|
@ -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(
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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,
|
||||
|
|
Loading…
Reference in a new issue