moved uploaderName to pub magic metadata
This commit is contained in:
parent
3ae701775a
commit
aa8c467ea7
|
@ -22,6 +22,7 @@ import {
|
||||||
getUint8ArrayView,
|
getUint8ArrayView,
|
||||||
} from '../readerService';
|
} from '../readerService';
|
||||||
import { generateThumbnail } from './thumbnailService';
|
import { generateThumbnail } from './thumbnailService';
|
||||||
|
import { EncryptedMagicMetadataCore } from 'types/magicMetadata';
|
||||||
|
|
||||||
const EDITED_FILE_SUFFIX = '-edited';
|
const EDITED_FILE_SUFFIX = '-edited';
|
||||||
|
|
||||||
|
@ -110,6 +111,16 @@ export async function encryptFile(
|
||||||
const { file: encryptedMetadata }: EncryptionResult =
|
const { file: encryptedMetadata }: EncryptionResult =
|
||||||
await worker.encryptMetadata(file.metadata, fileKey);
|
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(
|
const encryptedKey: B64EncryptionResult = await worker.encryptToB64(
|
||||||
fileKey,
|
fileKey,
|
||||||
encryptionKey
|
encryptionKey
|
||||||
|
@ -120,6 +131,7 @@ export async function encryptFile(
|
||||||
file: encryptedFiledata,
|
file: encryptedFiledata,
|
||||||
thumbnail: encryptedThumbnail,
|
thumbnail: encryptedThumbnail,
|
||||||
metadata: encryptedMetadata,
|
metadata: encryptedMetadata,
|
||||||
|
pubMagicMetadata: encryptedPubMagicMetadata,
|
||||||
localID: file.localID,
|
localID: file.localID,
|
||||||
},
|
},
|
||||||
fileKey: encryptedKey,
|
fileKey: encryptedKey,
|
||||||
|
|
17
src/services/upload/magicMetadataService.ts
Normal file
17
src/services/upload/magicMetadataService.ts
Normal 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;
|
||||||
|
}
|
|
@ -35,6 +35,8 @@ import { uploadStreamUsingMultipart } from './multiPartUploadService';
|
||||||
import UIService from './uiService';
|
import UIService from './uiService';
|
||||||
import { USE_CF_PROXY } from 'constants/upload';
|
import { USE_CF_PROXY } from 'constants/upload';
|
||||||
import publicUploadHttpClient from './publicUploadHttpClient';
|
import publicUploadHttpClient from './publicUploadHttpClient';
|
||||||
|
import { constructPublicMagicMetadata } from './magicMetadataService';
|
||||||
|
import { FilePublicMagicMetadataProps } from 'types/file';
|
||||||
|
|
||||||
class UploadService {
|
class UploadService {
|
||||||
private uploadURLs: UploadURL[] = [];
|
private uploadURLs: UploadURL[] = [];
|
||||||
|
@ -142,6 +144,12 @@ class UploadService {
|
||||||
return clusterLivePhotoFiles(mediaFiles);
|
return clusterLivePhotoFiles(mediaFiles);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
constructPublicMagicMetadata(
|
||||||
|
publicMagicMetadataProps: FilePublicMagicMetadataProps
|
||||||
|
) {
|
||||||
|
return constructPublicMagicMetadata(publicMagicMetadataProps);
|
||||||
|
}
|
||||||
|
|
||||||
async encryptAsset(
|
async encryptAsset(
|
||||||
worker: any,
|
worker: any,
|
||||||
file: FileWithMetadata,
|
file: FileWithMetadata,
|
||||||
|
@ -203,6 +211,7 @@ class UploadService {
|
||||||
objectKey: thumbnailObjectKey,
|
objectKey: thumbnailObjectKey,
|
||||||
},
|
},
|
||||||
metadata: file.metadata,
|
metadata: file.metadata,
|
||||||
|
pubMagicMetadata: file.pubMagicMetadata,
|
||||||
};
|
};
|
||||||
return backupedFile;
|
return backupedFile;
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import { EnteFile } from 'types/file';
|
import { EnteFile, FilePublicMagicMetadata } from 'types/file';
|
||||||
import { handleUploadError, CustomError } from 'utils/error';
|
import { handleUploadError, CustomError } from 'utils/error';
|
||||||
import { logError } from 'utils/sentry';
|
import { logError } from 'utils/sentry';
|
||||||
import { findMatchingExistingFiles } from 'utils/upload';
|
import { findMatchingExistingFiles } from 'utils/upload';
|
||||||
|
@ -6,12 +6,18 @@ import UIService from './uiService';
|
||||||
import UploadService from './uploadService';
|
import UploadService from './uploadService';
|
||||||
import { FILE_TYPE } from 'constants/file';
|
import { FILE_TYPE } from 'constants/file';
|
||||||
import { UPLOAD_RESULT, MAX_FILE_SIZE_SUPPORTED } from 'constants/upload';
|
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 { addLocalLog, addLogLine } from 'utils/logging';
|
||||||
import { convertBytesToHumanReadable } from 'utils/file/size';
|
import { convertBytesToHumanReadable } from 'utils/file/size';
|
||||||
import { sleep } from 'utils/common';
|
import { sleep } from 'utils/common';
|
||||||
import { addToCollection } from 'services/collectionService';
|
import { addToCollection } from 'services/collectionService';
|
||||||
import uploadCancelService from './uploadCancelService';
|
import uploadCancelService from './uploadCancelService';
|
||||||
|
import uploadService from './uploadService';
|
||||||
|
|
||||||
interface UploadResponse {
|
interface UploadResponse {
|
||||||
fileUploadResult: UPLOAD_RESULT;
|
fileUploadResult: UPLOAD_RESULT;
|
||||||
|
@ -104,14 +110,18 @@ export default async function uploader(
|
||||||
if (file.hasStaticThumbnail) {
|
if (file.hasStaticThumbnail) {
|
||||||
metadata.hasStaticThumbnail = true;
|
metadata.hasStaticThumbnail = true;
|
||||||
}
|
}
|
||||||
|
let pubMagicMetadata: FilePublicMagicMetadata;
|
||||||
if (uploaderName) {
|
if (uploaderName) {
|
||||||
metadata.uploaderName = uploaderName;
|
pubMagicMetadata = await uploadService.constructPublicMagicMetadata(
|
||||||
|
{ uploaderName }
|
||||||
|
);
|
||||||
}
|
}
|
||||||
const fileWithMetadata = {
|
const fileWithMetadata: FileWithMetadata = {
|
||||||
localID,
|
localID,
|
||||||
filedata: file.filedata,
|
filedata: file.filedata,
|
||||||
thumbnail: file.thumbnail,
|
thumbnail: file.thumbnail,
|
||||||
metadata,
|
metadata,
|
||||||
|
pubMagicMetadata,
|
||||||
};
|
};
|
||||||
|
|
||||||
if (uploadCancelService.isUploadCancelationRequested()) {
|
if (uploadCancelService.isUploadCancelationRequested()) {
|
||||||
|
|
|
@ -20,6 +20,7 @@ export interface FilePublicMagicMetadataProps {
|
||||||
editedTime?: number;
|
editedTime?: number;
|
||||||
editedName?: string;
|
editedName?: string;
|
||||||
caption?: string;
|
caption?: string;
|
||||||
|
uploaderName?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface FilePublicMagicMetadata
|
export interface FilePublicMagicMetadata
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
import { FILE_TYPE } from 'constants/file';
|
import { FILE_TYPE } from 'constants/file';
|
||||||
import { Collection } from 'types/collection';
|
import { Collection } from 'types/collection';
|
||||||
import { fileAttribute } from 'types/file';
|
import { fileAttribute, FilePublicMagicMetadata } from 'types/file';
|
||||||
|
import { EncryptedMagicMetadataCore } from 'types/magicMetadata';
|
||||||
|
|
||||||
export interface DataStream {
|
export interface DataStream {
|
||||||
stream: ReadableStream<Uint8Array>;
|
stream: ReadableStream<Uint8Array>;
|
||||||
|
@ -27,7 +28,6 @@ export interface Metadata {
|
||||||
hash?: string;
|
hash?: string;
|
||||||
imageHash?: string;
|
imageHash?: string;
|
||||||
videoHash?: string;
|
videoHash?: string;
|
||||||
uploaderName?: string;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface Location {
|
export interface Location {
|
||||||
|
@ -120,6 +120,7 @@ export interface FileWithMetadata
|
||||||
extends Omit<FileInMemory, 'hasStaticThumbnail'> {
|
extends Omit<FileInMemory, 'hasStaticThumbnail'> {
|
||||||
metadata: Metadata;
|
metadata: Metadata;
|
||||||
localID: number;
|
localID: number;
|
||||||
|
pubMagicMetadata: FilePublicMagicMetadata;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface EncryptedFile {
|
export interface EncryptedFile {
|
||||||
|
@ -130,6 +131,7 @@ export interface ProcessedFile {
|
||||||
file: fileAttribute;
|
file: fileAttribute;
|
||||||
thumbnail: fileAttribute;
|
thumbnail: fileAttribute;
|
||||||
metadata: fileAttribute;
|
metadata: fileAttribute;
|
||||||
|
pubMagicMetadata: EncryptedMagicMetadataCore;
|
||||||
localID: number;
|
localID: number;
|
||||||
}
|
}
|
||||||
export interface BackupedFile extends Omit<ProcessedFile, 'localID'> {}
|
export interface BackupedFile extends Omit<ProcessedFile, 'localID'> {}
|
||||||
|
|
Loading…
Reference in a new issue