mirror of
https://github.com/hedgedoc/hedgedoc.git
synced 2024-11-27 03:58:02 -05:00
fixed bug with minio.ts
- the provider can't be meaningfully initialized if this UploadProvider is not configured Signed-off-by: Philip Molares <philip.molares@udo.edu> Signed-off-by: David Mehren <dmehren1@gmail.com>
This commit is contained in:
parent
6cbd436454
commit
a642cfd22a
1 changed files with 37 additions and 29 deletions
|
@ -1,51 +1,59 @@
|
|||
import path from 'path'
|
||||
import fs from 'fs'
|
||||
import Minio from 'minio'
|
||||
import { Client } from 'minio'
|
||||
|
||||
import { config } from '../../config'
|
||||
import { getImageMimeType } from '../../utils'
|
||||
import { logger } from '../../logger'
|
||||
import { UploadProvider } from './index'
|
||||
|
||||
const minioClient = new Minio.Client({
|
||||
endPoint: config.minio.endPoint,
|
||||
port: config.minio.port,
|
||||
useSSL: config.minio.secure,
|
||||
accessKey: config.minio.accessKey,
|
||||
secretKey: config.minio.secretKey
|
||||
})
|
||||
let MinioUploadProvider: UploadProvider
|
||||
|
||||
const MinioUploadProvider: UploadProvider = {
|
||||
uploadImage: (imagePath, callback) => {
|
||||
if (!imagePath) {
|
||||
callback(new Error('Image path is missing or wrong'), undefined)
|
||||
return
|
||||
}
|
||||
if (config.minio.endPoint !== undefined) {
|
||||
const minioClient = new Client({
|
||||
endPoint: config.minio.endPoint,
|
||||
port: config.minio.port,
|
||||
useSSL: config.minio.secure,
|
||||
accessKey: config.minio.accessKey,
|
||||
secretKey: config.minio.secretKey
|
||||
})
|
||||
|
||||
if (!callback || typeof callback !== 'function') {
|
||||
logger.error('Callback has to be a function')
|
||||
return
|
||||
}
|
||||
|
||||
fs.readFile(imagePath, function (err, buffer) {
|
||||
if (err) {
|
||||
callback(new Error(err.message), undefined)
|
||||
MinioUploadProvider = {
|
||||
uploadImage: (imagePath, callback): void => {
|
||||
if (!imagePath) {
|
||||
callback(new Error('Image path is missing or wrong'), undefined)
|
||||
return
|
||||
}
|
||||
|
||||
const key = path.join('uploads', path.basename(imagePath))
|
||||
const protocol = config.minio.secure ? 'https' : 'http'
|
||||
if (!callback || typeof callback !== 'function') {
|
||||
logger.error('Callback has to be a function')
|
||||
return
|
||||
}
|
||||
|
||||
minioClient.putObject(config.s3bucket, key, buffer, buffer.length, getImageMimeType(imagePath), function (err, _) {
|
||||
fs.readFile(imagePath, function (err, buffer) {
|
||||
if (err) {
|
||||
callback(new Error(err.message), undefined)
|
||||
return
|
||||
}
|
||||
const hidePort = [80, 443].includes(config.minio.port)
|
||||
const urlPort = hidePort ? '' : `:${config.minio.port}`
|
||||
callback(undefined, `${protocol}://${config.minio.endPoint}${urlPort}/${config.s3bucket}/${key}`)
|
||||
|
||||
const key = path.join('uploads', path.basename(imagePath))
|
||||
const protocol = config.minio.secure ? 'https' : 'http'
|
||||
|
||||
const metaData = {
|
||||
ContentType: getImageMimeType(imagePath)
|
||||
}
|
||||
|
||||
minioClient.putObject(config.s3bucket, key, buffer, buffer.length, metaData, function (err, _) {
|
||||
if (err) {
|
||||
callback(new Error(err.message), undefined)
|
||||
return
|
||||
}
|
||||
const hidePort = [80, 443].includes(config.minio.port)
|
||||
const urlPort = hidePort ? '' : `:${config.minio.port}`
|
||||
callback(undefined, `${protocol}://${config.minio.endPoint}${urlPort}/${config.s3bucket}/${key}`)
|
||||
})
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue