aboutsummaryrefslogtreecommitdiff
path: root/src/server/ApiManagers/AzureManager.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/ApiManagers/AzureManager.ts')
-rw-r--r--src/server/ApiManagers/AzureManager.ts43
1 files changed, 22 insertions, 21 deletions
diff --git a/src/server/ApiManagers/AzureManager.ts b/src/server/ApiManagers/AzureManager.ts
index 2d0ab3aa6..d54b15810 100644
--- a/src/server/ApiManagers/AzureManager.ts
+++ b/src/server/ApiManagers/AzureManager.ts
@@ -1,37 +1,38 @@
-import { ContainerClient, BlobServiceClient } from "@azure/storage-blob";
-import * as fs from "fs";
-import { Readable, Stream } from "stream";
-import * as path from "path";
+import { ContainerClient, BlobServiceClient } from '@azure/storage-blob';
+import * as fs from 'fs';
+import { Readable } from 'stream';
+import * as path from 'path';
const AZURE_STORAGE_CONNECTION_STRING = process.env.AZURE_STORAGE_CONNECTION_STRING;
const extToType: { [suffix: string]: string } = {
- ".jpeg" : "image/jpeg",
- ".jpg" : "image/jpeg",
- ".png" : "image/png",
- ".svg" : "image/svg+xml",
- ".webp" : "image/webp",
- ".gif" : "image/gif"
-}
+ '.jpeg': 'image/jpeg',
+ '.jpg': 'image/jpeg',
+ '.png': 'image/png',
+ '.svg': 'image/svg+xml',
+ '.webp': 'image/webp',
+ '.gif': 'image/gif',
+};
export class AzureManager {
private _containerClient: ContainerClient;
private _blobServiceClient: BlobServiceClient;
private static _instance: AzureManager | undefined;
- public static CONTAINER_NAME = "dashmedia";
- public static STORAGE_ACCOUNT_NAME = "dashblobstore";
+ public static CONTAINER_NAME = 'dashmedia';
+ public static STORAGE_ACCOUNT_NAME = 'dashblobstore';
public static BASE_STRING = `https://${AzureManager.STORAGE_ACCOUNT_NAME}.blob.core.windows.net/${AzureManager.CONTAINER_NAME}`;
constructor() {
if (!AZURE_STORAGE_CONNECTION_STRING) {
- throw new Error("Azure Storage Connection String Not Found");
+ throw new Error('Azure Storage Connection String Not Found');
}
this._blobServiceClient = BlobServiceClient.fromConnectionString(AZURE_STORAGE_CONNECTION_STRING);
this._containerClient = this.BlobServiceClient.getContainerClient(AzureManager.CONTAINER_NAME);
}
public static get Instance() {
- return this._instance = this._instance ?? new AzureManager();
+ this._instance = this._instance ?? new AzureManager();
+ return this._instance;
}
public get BlobServiceClient() {
@@ -44,14 +45,14 @@ export class AzureManager {
public static UploadBlob(filename: string, filepath: string, filetype: string) {
const blockBlobClient = this.Instance.ContainerClient.getBlockBlobClient(filename);
- const blobOptions = { blobHTTPHeaders: { blobContentType: filetype }};
+ const blobOptions = { blobHTTPHeaders: { blobContentType: filetype } };
const stream = fs.createReadStream(filepath);
return blockBlobClient.uploadStream(stream, undefined, undefined, blobOptions);
}
public static UploadBase64ImageBlob(filename: string, data: string, filetype?: string) {
const confirmedFiletype = filetype ? filetype : extToType[path.extname(filename)];
- const buffer = Buffer.from(data, "base64");
+ const buffer = Buffer.from(data, 'base64');
const blockBlobClient = this.Instance.ContainerClient.getBlockBlobClient(filename);
const blobOptions = { blobHTTPHeaders: { blobContentType: confirmedFiletype } };
return blockBlobClient.upload(buffer, buffer.length, blobOptions);
@@ -59,7 +60,7 @@ export class AzureManager {
public static UploadBlobStream(stream: Readable, filename: string, filetype: string) {
const blockBlobClient = this.Instance.ContainerClient.getBlockBlobClient(filename);
- const blobOptions = { blobHTTPHeaders: { blobContentType: filetype }};
+ const blobOptions = { blobHTTPHeaders: { blobContentType: filetype } };
return blockBlobClient.uploadStream(stream, undefined, undefined, blobOptions);
}
@@ -74,9 +75,9 @@ export class AzureManager {
console.log(`${blob.name}`);
const blobItem = {
- url : `https://${AzureManager.STORAGE_ACCOUNT_NAME}.blob.core.windows.net/${AzureManager.CONTAINER_NAME}/${blob.name}`,
- name : blob.name
- }
+ url: `https://${AzureManager.STORAGE_ACCOUNT_NAME}.blob.core.windows.net/${AzureManager.CONTAINER_NAME}/${blob.name}`,
+ name: blob.name,
+ };
foundBlobs.push(blobItem);
}