rewrote ImageRouter

- introduced UploadProvider interface
- rewrote all current UploadProviders

Signed-off-by: Philip Molares <philip.molares@udo.edu>
Signed-off-by: David Mehren <dmehren1@gmail.com>
This commit is contained in:
Philip Molares 2020-04-12 20:41:54 +02:00 committed by David Mehren
parent ab5a654068
commit 982bbe9728
No known key found for this signature in database
GPG key ID: 6017AF117F9756CB
14 changed files with 312 additions and 256 deletions

View file

@ -0,0 +1,38 @@
import azure from 'azure-storage'
import path from 'path'
import { config } from '../../config'
import { logger } from '../../logger'
import { UploadProvider } from './index'
const AzureUploadProvider: UploadProvider = {
uploadImage: (imagePath, callback) => {
if (!callback || typeof callback !== 'function') {
logger.error('Callback has to be a function')
return
}
if (!imagePath) {
callback(new Error('Image path is missing or wrong'), undefined)
return
}
const azureBlobService = azure.createBlobService(config.azure.connectionString)
azureBlobService.createContainerIfNotExists(config.azure.container, { publicAccessLevel: 'blob' }, function (err, _, __) {
if (err) {
callback(new Error(err.message), undefined)
} else {
azureBlobService.createBlockBlobFromLocalFile(config.azure.container, path.basename(imagePath), imagePath, function (err, result, _) {
if (err) {
callback(new Error(err.message), undefined)
} else {
callback(undefined, azureBlobService.getUrl(config.azure.container, result.name))
}
})
}
})
}
}
export { AzureUploadProvider }