mirror of
https://github.com/hedgedoc/hedgedoc.git
synced 2024-12-25 01:31:56 +00:00
Add support for minio
This commit is contained in:
parent
d1d6d5810b
commit
2c780f53df
4 changed files with 49 additions and 0 deletions
|
@ -48,6 +48,13 @@ module.exports = {
|
||||||
secretAccessKey: undefined,
|
secretAccessKey: undefined,
|
||||||
region: undefined
|
region: undefined
|
||||||
},
|
},
|
||||||
|
minio: {
|
||||||
|
accessKey: undefined,
|
||||||
|
secretKey: undefined,
|
||||||
|
endPoint: undefined,
|
||||||
|
secure: true,
|
||||||
|
port: 9000
|
||||||
|
},
|
||||||
s3bucket: undefined,
|
s3bucket: undefined,
|
||||||
// authentication
|
// authentication
|
||||||
facebook: {
|
facebook: {
|
||||||
|
|
|
@ -24,6 +24,13 @@ module.exports = {
|
||||||
secretAccessKey: process.env.HMD_S3_SECRET_ACCESS_KEY,
|
secretAccessKey: process.env.HMD_S3_SECRET_ACCESS_KEY,
|
||||||
region: process.env.HMD_S3_REGION
|
region: process.env.HMD_S3_REGION
|
||||||
},
|
},
|
||||||
|
minio: {
|
||||||
|
accessKey: process.env.HMD_MINIO_ACCESS_KEY,
|
||||||
|
secretKey: process.env.HMD_MINIO_SECRET_KEY,
|
||||||
|
endPoint: process.env.HMD_MINIO_ENDPOINT,
|
||||||
|
secure: toBooleanConfig(process.env.HMD_MINIO_SECURE),
|
||||||
|
port: parseInt(process.env.HMD_MINIO_PORT)
|
||||||
|
},
|
||||||
s3bucket: process.env.HMD_S3_BUCKET,
|
s3bucket: process.env.HMD_S3_BUCKET,
|
||||||
facebook: {
|
facebook: {
|
||||||
clientID: process.env.HMD_FACEBOOK_CLIENTID,
|
clientID: process.env.HMD_FACEBOOK_CLIENTID,
|
||||||
|
|
|
@ -73,6 +73,40 @@ imageRouter.post('/uploadimage', function (req, res) {
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
break
|
break
|
||||||
|
|
||||||
|
case 'minio':
|
||||||
|
var utils = require('../utils')
|
||||||
|
var Minio = require('minio')
|
||||||
|
var minioClient = new Minio.Client({
|
||||||
|
endPoint: config.minio.endPoint,
|
||||||
|
port: config.minio.port,
|
||||||
|
secure: config.minio.secure,
|
||||||
|
accessKey: config.minio.accessKey,
|
||||||
|
secretKey: config.minio.secretKey
|
||||||
|
})
|
||||||
|
fs.readFile(files.image.path, function (err, buffer) {
|
||||||
|
if (err) {
|
||||||
|
logger.error(err)
|
||||||
|
res.status(500).end('upload image error')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
var key = path.join('uploads', path.basename(files.image.path))
|
||||||
|
var protocol = config.minio.secure ? 'https' : 'http'
|
||||||
|
|
||||||
|
minioClient.putObject(config.s3bucket, key, buffer, buffer.size, utils.getImageMimeType(files.image.path), function (err, data) {
|
||||||
|
if (err) {
|
||||||
|
logger.error(err)
|
||||||
|
res.status(500).end('upload image error')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
res.send({
|
||||||
|
link: `${protocol}://${config.minio.endPoint}:${config.minio.port}/${config.s3bucket}/${key}`
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
break
|
||||||
|
|
||||||
case 'imgur':
|
case 'imgur':
|
||||||
default:
|
default:
|
||||||
imgur.setClientId(config.imgur.clientID)
|
imgur.setClientId(config.imgur.clientID)
|
||||||
|
|
|
@ -76,6 +76,7 @@
|
||||||
"mermaid": "~7.0.0",
|
"mermaid": "~7.0.0",
|
||||||
"meta-marked": "^0.4.2",
|
"meta-marked": "^0.4.2",
|
||||||
"method-override": "^2.3.7",
|
"method-override": "^2.3.7",
|
||||||
|
"minio": "^3.1.3",
|
||||||
"moment": "^2.17.1",
|
"moment": "^2.17.1",
|
||||||
"morgan": "^1.7.0",
|
"morgan": "^1.7.0",
|
||||||
"mysql": "^2.12.0",
|
"mysql": "^2.12.0",
|
||||||
|
|
Loading…
Reference in a new issue