moved uploaderName to pub magic metadata

This commit is contained in:
Abhinav 2022-12-15 17:22:55 +05:30
parent 3ae701775a
commit aa8c467ea7
6 changed files with 57 additions and 6 deletions

View file

@ -22,6 +22,7 @@ import {
getUint8ArrayView,
} from '../readerService';
import { generateThumbnail } from './thumbnailService';
import { EncryptedMagicMetadataCore } from 'types/magicMetadata';
const EDITED_FILE_SUFFIX = '-edited';
@ -110,6 +111,16 @@ export async function encryptFile(
const { file: encryptedMetadata }: EncryptionResult =
await worker.encryptMetadata(file.metadata, fileKey);
const { file: encryptedPubMagicMetadataData }: EncryptionResult =
await worker.encryptMetadata(file.pubMagicMetadata.data, fileKey);
const encryptedPubMagicMetadata: EncryptedMagicMetadataCore = {
version: file.pubMagicMetadata.version,
count: file.pubMagicMetadata.count,
data: encryptedPubMagicMetadataData.encryptedData as unknown as string,
header: encryptedPubMagicMetadataData.decryptionHeader,
};
const encryptedKey: B64EncryptionResult = await worker.encryptToB64(
fileKey,
encryptionKey
@ -120,6 +131,7 @@ export async function encryptFile(
file: encryptedFiledata,
thumbnail: encryptedThumbnail,
metadata: encryptedMetadata,
pubMagicMetadata: encryptedPubMagicMetadata,
localID: file.localID,
},
fileKey: encryptedKey,

View file

@ -0,0 +1,17 @@
import {
FilePublicMagicMetadataProps,
FilePublicMagicMetadata,
} from 'types/file';
import { NEW_FILE_MAGIC_METADATA } from 'types/magicMetadata';
import { updateMagicMetadataProps } from 'utils/magicMetadata';
export async function constructPublicMagicMetadata(
publicMagicMetadataProps: FilePublicMagicMetadataProps
): Promise<FilePublicMagicMetadata> {
const pubMagicMetadata = await updateMagicMetadataProps(
NEW_FILE_MAGIC_METADATA,
null,
publicMagicMetadataProps
);
return pubMagicMetadata;
}

View file

@ -35,6 +35,8 @@ import { uploadStreamUsingMultipart } from './multiPartUploadService';
import UIService from './uiService';
import { USE_CF_PROXY } from 'constants/upload';
import publicUploadHttpClient from './publicUploadHttpClient';
import { constructPublicMagicMetadata } from './magicMetadataService';
import { FilePublicMagicMetadataProps } from 'types/file';
class UploadService {
private uploadURLs: UploadURL[] = [];
@ -142,6 +144,12 @@ class UploadService {
return clusterLivePhotoFiles(mediaFiles);
}
constructPublicMagicMetadata(
publicMagicMetadataProps: FilePublicMagicMetadataProps
) {
return constructPublicMagicMetadata(publicMagicMetadataProps);
}
async encryptAsset(
worker: any,
file: FileWithMetadata,
@ -203,6 +211,7 @@ class UploadService {
objectKey: thumbnailObjectKey,
},
metadata: file.metadata,
pubMagicMetadata: file.pubMagicMetadata,
};
return backupedFile;
} catch (e) {

View file

@ -1,4 +1,4 @@
import { EnteFile } from 'types/file';
import { EnteFile, FilePublicMagicMetadata } from 'types/file';
import { handleUploadError, CustomError } from 'utils/error';
import { logError } from 'utils/sentry';
import { findMatchingExistingFiles } from 'utils/upload';
@ -6,12 +6,18 @@ import UIService from './uiService';
import UploadService from './uploadService';
import { FILE_TYPE } from 'constants/file';
import { UPLOAD_RESULT, MAX_FILE_SIZE_SUPPORTED } from 'constants/upload';
import { FileWithCollection, BackupedFile, UploadFile } from 'types/upload';
import {
FileWithCollection,
BackupedFile,
UploadFile,
FileWithMetadata,
} from 'types/upload';
import { addLocalLog, addLogLine } from 'utils/logging';
import { convertBytesToHumanReadable } from 'utils/file/size';
import { sleep } from 'utils/common';
import { addToCollection } from 'services/collectionService';
import uploadCancelService from './uploadCancelService';
import uploadService from './uploadService';
interface UploadResponse {
fileUploadResult: UPLOAD_RESULT;
@ -104,14 +110,18 @@ export default async function uploader(
if (file.hasStaticThumbnail) {
metadata.hasStaticThumbnail = true;
}
let pubMagicMetadata: FilePublicMagicMetadata;
if (uploaderName) {
metadata.uploaderName = uploaderName;
pubMagicMetadata = await uploadService.constructPublicMagicMetadata(
{ uploaderName }
);
}
const fileWithMetadata = {
const fileWithMetadata: FileWithMetadata = {
localID,
filedata: file.filedata,
thumbnail: file.thumbnail,
metadata,
pubMagicMetadata,
};
if (uploadCancelService.isUploadCancelationRequested()) {

View file

@ -20,6 +20,7 @@ export interface FilePublicMagicMetadataProps {
editedTime?: number;
editedName?: string;
caption?: string;
uploaderName?: string;
}
export interface FilePublicMagicMetadata

View file

@ -1,6 +1,7 @@
import { FILE_TYPE } from 'constants/file';
import { Collection } from 'types/collection';
import { fileAttribute } from 'types/file';
import { fileAttribute, FilePublicMagicMetadata } from 'types/file';
import { EncryptedMagicMetadataCore } from 'types/magicMetadata';
export interface DataStream {
stream: ReadableStream<Uint8Array>;
@ -27,7 +28,6 @@ export interface Metadata {
hash?: string;
imageHash?: string;
videoHash?: string;
uploaderName?: string;
}
export interface Location {
@ -120,6 +120,7 @@ export interface FileWithMetadata
extends Omit<FileInMemory, 'hasStaticThumbnail'> {
metadata: Metadata;
localID: number;
pubMagicMetadata: FilePublicMagicMetadata;
}
export interface EncryptedFile {
@ -130,6 +131,7 @@ export interface ProcessedFile {
file: fileAttribute;
thumbnail: fileAttribute;
metadata: fileAttribute;
pubMagicMetadata: EncryptedMagicMetadataCore;
localID: number;
}
export interface BackupedFile extends Omit<ProcessedFile, 'localID'> {}