From 5f44a6cf1f16023a4c39872f2ccfc129c65ea812 Mon Sep 17 00:00:00 2001 From: James Hu <51237606+jameshu111@users.noreply.github.com> Date: Mon, 26 Jun 2023 10:37:11 -0400 Subject: temp working version --- src/client/documents/Documents.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/client/documents') diff --git a/src/client/documents/Documents.ts b/src/client/documents/Documents.ts index ffde9fe1b..ac6c48619 100644 --- a/src/client/documents/Documents.ts +++ b/src/client/documents/Documents.ts @@ -1739,7 +1739,8 @@ export namespace DocUtils { return; } const full = { ...options, _width: 400, title: name }; - const pathname = Utils.prepend(result.accessPaths.agnostic.client); + // const pathname = Utils.prepend(result.accessPaths.agnostic.client); + const pathname = result.accessPaths.azure.client; const doc = await DocUtils.DocumentFromType(type, pathname, full, overwriteDoc); if (doc) { const proto = Doc.GetProto(doc); -- cgit v1.2.3-70-g09d2 From 5a1c452941032c8a5c468e54674450f452d8bda9 Mon Sep 17 00:00:00 2001 From: James Hu <51237606+jameshu111@users.noreply.github.com> Date: Thu, 6 Jul 2023 11:22:44 -0400 Subject: flag with comments --- package.json | 2 +- src/client/documents/Documents.ts | 3 ++- src/server/DashUploadUtils.ts | 24 ++++++++++++++++++------ 3 files changed, 21 insertions(+), 8 deletions(-) (limited to 'src/client/documents') diff --git a/package.json b/package.json index 3a3d17517..2b37d5171 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "start-release": "cross-env RELEASE=true NODE_OPTIONS=--max_old_space_size=4096 ts-node-dev -- src/server/index.ts", "start": "cross-env NODE_OPTIONS=--max_old_space_size=4096 ts-node-dev --debug --transpile-only -- src/server/index.ts", "oldstart": "cross-env NODE_OPTIONS=--max_old_space_size=4096 ts-node-dev --debug -- src/server/index.ts", - "debug": "cross-env NODE_OPTIONS=--max_old_space_size=8192 ts-node-dev --transpile-only --inspect -- src/server/index.ts", + "debug": "cross-env USE_AZURE=true NODE_OPTIONS=--max_old_space_size=8192 ts-node-dev --transpile-only --inspect -- src/server/index.ts", "monitor": "cross-env MONITORED=true NODE_OPTIONS=--max_old_space_size=4096 ts-node src/server/index.ts", "build": "cross-env NODE_OPTIONS=--max_old_space_size=8192 webpack --env production", "test": "mocha -r ts-node/register test/**/*.ts", diff --git a/src/client/documents/Documents.ts b/src/client/documents/Documents.ts index 93043e517..43c9d2e7a 100644 --- a/src/client/documents/Documents.ts +++ b/src/client/documents/Documents.ts @@ -1737,7 +1737,8 @@ export namespace DocUtils { } const full = { ...options, _width: 400, title: name }; // const pathname = Utils.prepend(result.accessPaths.agnostic.client); - const pathname = result.accessPaths.azure.client; + const pathname = result.accessPaths.agnostic.client; + // const pathname = result.accessPaths.azure.client; const doc = await DocUtils.DocumentFromType(type, pathname, full, overwriteDoc); if (doc) { const proto = Doc.GetProto(doc); diff --git a/src/server/DashUploadUtils.ts b/src/server/DashUploadUtils.ts index 7abefed8a..74c4786b6 100644 --- a/src/server/DashUploadUtils.ts +++ b/src/server/DashUploadUtils.ts @@ -43,6 +43,10 @@ function isLocal() { return /Dash-Web[0-9]*[\\\/]src[\\\/]server[\\\/]public[\\\/](.*)/; } +function usingAzure(){ + return process.env.USE_AZURE === 'true'; +} + export namespace DashUploadUtils { export interface Size { width: number; @@ -183,6 +187,8 @@ export namespace DashUploadUtils { } export async function upload(file: File, overwriteGuid?: string): Promise { + const isAzureOn = usingAzure(); + console.log("Azure usage: ", isAzureOn); const { type, path, name } = file; const types = type?.split('/') ?? []; uploadProgress.set(overwriteGuid ?? name, 'uploading'); // If the client sent a guid it uses to track upload progress, use that guid. Otherwise, use the file's name. @@ -486,11 +492,15 @@ export namespace DashUploadUtils { const { images } = Directory; const information: Upload.ImageInformation = { accessPaths: { - agnostic: getAccessPaths(images, resolved), - azure: { + // agnostic: getAccessPaths(images, resolved), + // azure: { + // client: `https://dashblobstore.blob.core.windows.net/dashmedia/${filename}`, + // server: `https://dashblobstore.blob.core.windows.net/dashmedia/${filename}` + // } + agnostic: usingAzure() ? { client: `https://dashblobstore.blob.core.windows.net/dashmedia/${filename}`, server: `https://dashblobstore.blob.core.windows.net/dashmedia/${filename}` - } + } : getAccessPaths(images, resolved) }, ...metadata, }; @@ -540,7 +550,7 @@ export namespace DashUploadUtils { }; export async function outputResizedImages(streamProvider: () => Stream | Promise, outputFileName: string, outputDirectory: string, originalFilename?: string, contentType?: string) { - console.log("resized original filename: ", originalFilename); + const start = Date.now(); const writtenFiles: { [suffix: string]: string } = {}; for (const { resizer, suffix } of resizers(path.extname(outputFileName))) { const outputPath = path.resolve(outputDirectory, (writtenFiles[suffix] = InjectSize(outputFileName, suffix))); @@ -552,13 +562,15 @@ export namespace DashUploadUtils { if (resizer) { readStream = readStream.pipe(resizer.withMetadata()); } - if(originalFilename && contentType) { - AzureManager.UploadBlobStream(readStream as Readable, InjectSize(originalFilename, suffix), contentType); + if(contentType && usingAzure()) { + // AzureManager.UploadBlobStream(readStream as Readable, InjectSize(originalFilename, suffix), contentType); AzureManager.UploadBlobStream(readStream as Readable, InjectSize(outputFileName, suffix), contentType); } readStream.pipe(createWriteStream(outputPath)).on('close', resolve).on('error', reject); }); } + const end = Date.now(); + console.log(`Time taken: ${end - start}ms`); return writtenFiles; } -- cgit v1.2.3-70-g09d2 From a5194a874236eafc42a61c96d5b22c8622170149 Mon Sep 17 00:00:00 2001 From: James Hu <51237606+jameshu111@users.noreply.github.com> Date: Tue, 11 Jul 2023 11:32:43 -0400 Subject: clean up --- src/client/documents/Documents.ts | 2 -- src/server/ApiManagers/AzureManager.ts | 11 ++--------- src/server/DashUploadUtils.ts | 6 ++---- 3 files changed, 4 insertions(+), 15 deletions(-) (limited to 'src/client/documents') diff --git a/src/client/documents/Documents.ts b/src/client/documents/Documents.ts index 43c9d2e7a..2532ef226 100644 --- a/src/client/documents/Documents.ts +++ b/src/client/documents/Documents.ts @@ -1736,9 +1736,7 @@ export namespace DocUtils { return; } const full = { ...options, _width: 400, title: name }; - // const pathname = Utils.prepend(result.accessPaths.agnostic.client); const pathname = result.accessPaths.agnostic.client; - // const pathname = result.accessPaths.azure.client; const doc = await DocUtils.DocumentFromType(type, pathname, full, overwriteDoc); if (doc) { const proto = Doc.GetProto(doc); diff --git a/src/server/ApiManagers/AzureManager.ts b/src/server/ApiManagers/AzureManager.ts index 7e319f123..12bb98ad0 100644 --- a/src/server/ApiManagers/AzureManager.ts +++ b/src/server/ApiManagers/AzureManager.ts @@ -1,8 +1,6 @@ import { ContainerClient, BlobServiceClient } from "@azure/storage-blob"; -// import * as dotenv from 'dotenv'; import * as fs from "fs"; import { Readable, Stream } from "stream"; -// dotenv.config(); const AZURE_STORAGE_CONNECTION_STRING = process.env.AZURE_STORAGE_CONNECTION_STRING; export class AzureManager { @@ -15,9 +13,8 @@ export class AzureManager { constructor() { if (!AZURE_STORAGE_CONNECTION_STRING) { - throw Error("Azure Storage Connection String Not Found"); + throw new Error("Azure Storage Connection String Not Found"); } - // this._blobServiceClient = BlobServiceClient.fromConnectionString(process.env.AZURE_STORAGE_CONNECTION_STRING); this._blobServiceClient = BlobServiceClient.fromConnectionString(AZURE_STORAGE_CONNECTION_STRING); this._containerClient = this.BlobServiceClient.getContainerClient(AzureManager.CONTAINER_NAME); } @@ -35,7 +32,6 @@ export class AzureManager { } public static UploadBlob(filename: string, filepath: string, filetype: string) { - console.log("Upload Blob File"); const blockBlobClient = this.Instance.ContainerClient.getBlockBlobClient(filename); const blobOptions = { blobHTTPHeaders: { blobContentType: filetype }}; const stream = fs.createReadStream(filepath); @@ -43,20 +39,17 @@ export class AzureManager { } public static UploadBlobStream(stream: Readable, filename: string, filetype: string) { - console.log("Upload Blob Stream: %s, %s", filename, filetype); const blockBlobClient = this.Instance.ContainerClient.getBlockBlobClient(filename); const blobOptions = { blobHTTPHeaders: { blobContentType: filetype }}; return blockBlobClient.uploadStream(stream, undefined, undefined, blobOptions); } public static DeleteBlob(filename: string) { - console.log("Delete Blob from filename"); const blockBlobClient = this.Instance.ContainerClient.getBlockBlobClient(filename); return blockBlobClient.deleteIfExists(); } public static async GetBlobs() { - console.log("Get Blobs"); const foundBlobs = []; for await (const blob of this.Instance.ContainerClient.listBlobsFlat()) { console.log(`${blob.name}`); @@ -71,4 +64,4 @@ export class AzureManager { return foundBlobs; } -} \ No newline at end of file +} diff --git a/src/server/DashUploadUtils.ts b/src/server/DashUploadUtils.ts index c33166d4a..bff60568b 100644 --- a/src/server/DashUploadUtils.ts +++ b/src/server/DashUploadUtils.ts @@ -192,7 +192,6 @@ export namespace DashUploadUtils { export async function upload(file: File, overwriteGuid?: string): Promise { const isAzureOn = usingAzure(); - console.log("Azure usage: ", isAzureOn); const { type, path, name } = file; const types = type?.split('/') ?? []; uploadProgress.set(overwriteGuid ?? name, 'uploading'); // If the client sent a guid it uses to track upload progress, use that guid. Otherwise, use the file's name. @@ -204,7 +203,7 @@ export namespace DashUploadUtils { switch (category) { case 'image': if (imageFormats.includes(format)) { - const result = await UploadImage(path, basename(path), name); + const result = await UploadImage(path, basename(path)); return { source: file, result }; } fs.unlink(path, () => {}); @@ -334,12 +333,11 @@ export namespace DashUploadUtils { * 3) the size of the image, in bytes (4432130) * 4) the content type of the image, i.e. image/(jpeg | png | ...) */ - export const UploadImage = async (source: string, filename?: string, originalFilename?: string, prefix: string = ''): Promise => { + export const UploadImage = async (source: string, filename?: string, prefix: string = ''): Promise => { const metadata = await InspectImage(source); if (metadata instanceof Error) { return { name: metadata.name, message: metadata.message }; } - console.log(originalFilename); return UploadInspectedImage(metadata, filename || metadata.filename, prefix); }; -- cgit v1.2.3-70-g09d2