mirror of
https://gitlab.com/Shinobi-Systems/ShinobiCE.git
synced 2025-03-09 15:40:15 +00:00
Support Shinobi at https://licenses.shinobi.video/subscribe
This commit is contained in:
parent
ef40f3f231
commit
167603dfb0
118 changed files with 16152 additions and 5441 deletions
|
@ -123,6 +123,67 @@ module.exports = function(s,config,lang){
|
|||
})
|
||||
}
|
||||
}
|
||||
var onInsertTimelapseFrame = function(monitorObject,queryInfo,filePath){
|
||||
var e = monitorObject
|
||||
if(s.group[e.ke].aws_s3 && s.group[e.ke].init.use_aws_s3 !== '0' && s.group[e.ke].init.aws_s3_save === '1'){
|
||||
var fileStream = fs.createReadStream(filePath)
|
||||
fileStream.on('error', function (err) {
|
||||
console.error(err)
|
||||
})
|
||||
var saveLocation = s.group[e.ke].init.aws_s3_dir + e.ke + '/' + e.mid + '_timelapse/' + queryInfo.filename
|
||||
s.group[e.ke].aws_s3.upload({
|
||||
Bucket: s.group[e.ke].init.aws_s3_bucket,
|
||||
Key: saveLocation,
|
||||
Body: fileStream,
|
||||
ACL:'public-read',
|
||||
ContentType:'image/jpeg'
|
||||
},function(err,data){
|
||||
if(err){
|
||||
s.userLog(e,{type:lang['Wasabi Hot Cloud Storage Upload Error'],msg:err})
|
||||
}
|
||||
if(s.group[e.ke].init.aws_s3_log === '1' && data && data.Location){
|
||||
var save = [
|
||||
queryInfo.mid,
|
||||
queryInfo.ke,
|
||||
queryInfo.time,
|
||||
s.s({
|
||||
type : 's3',
|
||||
location : saveLocation,
|
||||
}),
|
||||
queryInfo.size,
|
||||
data.Location
|
||||
]
|
||||
s.sqlQuery('INSERT INTO `Cloud Timelapse Frames` (mid,ke,time,details,size,href) VALUES (?,?,?,?,?,?)',save)
|
||||
s.setCloudDiskUsedForGroup(e,{
|
||||
amount : s.kilobyteToMegabyte(queryInfo.size),
|
||||
storageType : 's3'
|
||||
},'timelapseFrames')
|
||||
s.purgeCloudDiskForGroup(e,'s3','timelapseFrames')
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
var onDeleteTimelapseFrameFromCloud = function(e,frame,callback){
|
||||
// e = user
|
||||
try{
|
||||
var frameDetails = JSON.parse(frame.details)
|
||||
}catch(err){
|
||||
var frameDetails = frame.details
|
||||
}
|
||||
if(frameDetails.type !== 's3'){
|
||||
return
|
||||
}
|
||||
if(!frameDetails.location){
|
||||
frameDetails.location = frame.href.split(locationUrl)[1]
|
||||
}
|
||||
s.group[e.ke].aws_s3.deleteObject({
|
||||
Bucket: s.group[e.ke].init.aws_s3_bucket,
|
||||
Key: frameDetails.location,
|
||||
}, function(err, data) {
|
||||
if (err) console.log(err);
|
||||
callback()
|
||||
});
|
||||
}
|
||||
//amazon s3
|
||||
s.addCloudUploader({
|
||||
name: 's3',
|
||||
|
@ -133,5 +194,215 @@ module.exports = function(s,config,lang){
|
|||
cloudDiskUseStartupExtensions: cloudDiskUseStartupForAmazonS3,
|
||||
beforeAccountSave: beforeAccountSaveForAmazonS3,
|
||||
onAccountSave: cloudDiskUseStartupForAmazonS3,
|
||||
onInsertTimelapseFrame: onInsertTimelapseFrame,
|
||||
onDeleteTimelapseFrameFromCloud: onDeleteTimelapseFrameFromCloud
|
||||
})
|
||||
}
|
||||
//return fields that will appear in settings
|
||||
return {
|
||||
"evaluation": "details.use_aws_s3 !== '0'",
|
||||
"name": lang["Amazon S3"],
|
||||
"color": "forestgreen",
|
||||
"info": [
|
||||
{
|
||||
"name": "detail=aws_s3_save",
|
||||
"selector":"autosave_aws_s3",
|
||||
"field": lang.Autosave,
|
||||
"description": "",
|
||||
"default": lang.No,
|
||||
"example": "",
|
||||
"fieldType": "select",
|
||||
"possible": [
|
||||
{
|
||||
"name": lang.No,
|
||||
"value": "0"
|
||||
},
|
||||
{
|
||||
"name": lang.Yes,
|
||||
"value": "1"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"hidden": true,
|
||||
"field": lang.Bucket,
|
||||
"name": "detail=aws_s3_bucket",
|
||||
"placeholder": "Example : slippery-seal",
|
||||
"form-group-class": "autosave_aws_s3_input autosave_aws_s3_1",
|
||||
"description": "",
|
||||
"default": "",
|
||||
"example": "",
|
||||
"possible": ""
|
||||
},
|
||||
{
|
||||
"hidden": true,
|
||||
"field": lang.aws_accessKeyId,
|
||||
"name": "detail=aws_accessKeyId",
|
||||
"form-group-class": "autosave_aws_s3_input autosave_aws_s3_1",
|
||||
"description": "",
|
||||
"default": "",
|
||||
"example": "",
|
||||
"possible": ""
|
||||
},
|
||||
{
|
||||
"hidden": true,
|
||||
"name": "detail=aws_secretAccessKey",
|
||||
"fieldType":"password",
|
||||
"placeholder": "",
|
||||
"field": lang.aws_secretAccessKey,
|
||||
"form-group-class":"autosave_aws_s3_input autosave_aws_s3_1",
|
||||
"description": "",
|
||||
"default": "",
|
||||
"example": "",
|
||||
"possible": ""
|
||||
},
|
||||
{
|
||||
"hidden": true,
|
||||
"name": "detail=aws_region",
|
||||
"field": lang.Region,
|
||||
"fieldType": "select",
|
||||
"form-group-class":"autosave_aws_s3_input autosave_aws_s3_1",
|
||||
"description": "",
|
||||
"default": "",
|
||||
"example": "",
|
||||
"possible": [
|
||||
{
|
||||
"name": "US West (N. California)",
|
||||
"value": "us-west-1"
|
||||
},
|
||||
{
|
||||
"name": "US West (Oregon)",
|
||||
"value": "us-west-2"
|
||||
},
|
||||
{
|
||||
"name": "US East (Ohio)",
|
||||
"value": "us-east-2"
|
||||
},
|
||||
{
|
||||
"name": "US East (N. Virginia)",
|
||||
"value": "us-east-1"
|
||||
},
|
||||
{
|
||||
"name": "Asia Pacific (Mumbai)",
|
||||
"value": "ap-south-1"
|
||||
},
|
||||
{
|
||||
"name": "Asia Pacific (Seoul)",
|
||||
"value": "ap-northeast-2"
|
||||
},
|
||||
{
|
||||
"name": "Asia Pacific (Osaka-Local)**",
|
||||
"value": "ap-northeast-3"
|
||||
},
|
||||
{
|
||||
"name": "Asia Pacific (Singapore)",
|
||||
"value": "ap-southeast-1"
|
||||
},
|
||||
{
|
||||
"name": "Asia Pacific (Sydney)",
|
||||
"value": "ap-southeast-2"
|
||||
},
|
||||
{
|
||||
"name": "Asia Pacific (Tokyo)",
|
||||
"value": "ap-northeast-1"
|
||||
},
|
||||
{
|
||||
"name": "Canada (Central)",
|
||||
"value": "ca-central-1"
|
||||
},
|
||||
{
|
||||
"name": "China (Beijing)",
|
||||
"value": "cn-north-1"
|
||||
},
|
||||
{
|
||||
"name": "China (Ningxia)",
|
||||
"value": "cn-northwest-1"
|
||||
},
|
||||
{
|
||||
"name": "EU (Frankfurt)",
|
||||
"value": "eu-central-1"
|
||||
},
|
||||
{
|
||||
"name": "EU (Ireland)",
|
||||
"value": "eu-west-1"
|
||||
},
|
||||
{
|
||||
"name": "EU (London)",
|
||||
"value": "eu-west-2"
|
||||
},
|
||||
{
|
||||
"name": "EU (Paris)",
|
||||
"value": "eu-west-3"
|
||||
},
|
||||
{
|
||||
"name": "South America (São Paulo)",
|
||||
"value": "sa-east-1"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"hidden": true,
|
||||
"name": "detail=aws_s3_log",
|
||||
"field": lang['Save Links to Database'],
|
||||
"fieldType": "select",
|
||||
"selector": "h_s3sld",
|
||||
"form-group-class":"autosave_aws_s3_input autosave_aws_s3_1",
|
||||
"description": "",
|
||||
"default": "",
|
||||
"example": "",
|
||||
"possible": [
|
||||
{
|
||||
"name": lang.No,
|
||||
"value": "0"
|
||||
},
|
||||
{
|
||||
"name": lang.Yes,
|
||||
"value": "1"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"hidden": true,
|
||||
"name": "detail=use_aws_s3_size_limit",
|
||||
"field": lang['Use Max Storage Amount'],
|
||||
"fieldType": "select",
|
||||
"selector": "h_s3zl",
|
||||
"form-group-class":"autosave_aws_s3_input autosave_aws_s3_1",
|
||||
"form-group-class-pre-layer":"h_s3sld_input h_s3sld_1",
|
||||
"description": "",
|
||||
"default": "",
|
||||
"example": "",
|
||||
"possible": [
|
||||
{
|
||||
"name": lang.No,
|
||||
"value": "0"
|
||||
},
|
||||
{
|
||||
"name": lang.Yes,
|
||||
"value": "1"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"hidden": true,
|
||||
"name": "detail=aws_s3_size_limit",
|
||||
"field": lang['Max Storage Amount'],
|
||||
"form-group-class":"autosave_aws_s3_input autosave_aws_s3_1",
|
||||
"form-group-class-pre-layer":"h_s3sld_input h_s3sld_1",
|
||||
"description": "",
|
||||
"default": "10000",
|
||||
"example": "",
|
||||
"possible": ""
|
||||
},
|
||||
{
|
||||
"hidden": true,
|
||||
"name": "detail=aws_s3_dir",
|
||||
"field": lang['Save Directory'],
|
||||
"form-group-class":"autosave_aws_s3_input autosave_aws_s3_1",
|
||||
"description": "",
|
||||
"default": "/",
|
||||
"example": "",
|
||||
"possible": ""
|
||||
},
|
||||
]
|
||||
}
|
||||
}
|
|
@ -167,4 +167,127 @@ module.exports = function(s,config,lang){
|
|||
beforeAccountSave: beforeAccountSaveForBackblazeB2,
|
||||
onAccountSave: cloudDiskUseStartupForBackblazeB2,
|
||||
})
|
||||
return {
|
||||
"evaluation": "details.use_bb_b2 !== '0'",
|
||||
"name": lang["Backblaze B2"],
|
||||
"color": "forestgreen",
|
||||
"info": [
|
||||
{
|
||||
"name": "detail=bb_b2_save",
|
||||
"selector":"autosave_bb_b2",
|
||||
"field": lang.Autosave,
|
||||
"description": "",
|
||||
"default": lang.No,
|
||||
"example": "",
|
||||
"fieldType": "select",
|
||||
"possible": [
|
||||
{
|
||||
"name": lang.No,
|
||||
"value": "0"
|
||||
},
|
||||
{
|
||||
"name": lang.Yes,
|
||||
"value": "1"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"hidden": true,
|
||||
"field": lang.Bucket,
|
||||
"name": "detail=bb_b2_bucket",
|
||||
"placeholder": "Example : slippery-seal",
|
||||
"form-group-class": "autosave_bb_b2_input autosave_bb_b2_1",
|
||||
"description": "",
|
||||
"default": "",
|
||||
"example": "",
|
||||
"possible": ""
|
||||
},
|
||||
{
|
||||
"hidden": true,
|
||||
"field": lang.keyId,
|
||||
"name": "detail=bb_b2_accountId",
|
||||
"form-group-class": "autosave_bb_b2_input autosave_bb_b2_1",
|
||||
"description": "",
|
||||
"default": "",
|
||||
"example": "",
|
||||
"possible": ""
|
||||
},
|
||||
{
|
||||
"hidden": true,
|
||||
"name": "detail=bb_b2_applicationKey",
|
||||
"fieldType":"password",
|
||||
"placeholder": "XXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXXXXXXX_XXXXXXXXXXXXXXXXXX",
|
||||
"field": lang.applicationKey,
|
||||
"form-group-class":"autosave_bb_b2_input autosave_bb_b2_1",
|
||||
"description": "",
|
||||
"default": "",
|
||||
"example": "",
|
||||
"possible": ""
|
||||
},
|
||||
{
|
||||
"hidden": true,
|
||||
"name": "detail=bb_b2_log",
|
||||
"field": lang['Save Links to Database'],
|
||||
"fieldType": "select",
|
||||
"selector": "h_b2sld",
|
||||
"form-group-class":"autosave_bb_b2_input autosave_bb_b2_1",
|
||||
"description": "",
|
||||
"default": "",
|
||||
"example": "",
|
||||
"possible": [
|
||||
{
|
||||
"name": lang.No,
|
||||
"value": "0"
|
||||
},
|
||||
{
|
||||
"name": lang.Yes,
|
||||
"value": "1"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"hidden": true,
|
||||
"name": "detail=use_bb_b2_size_limit",
|
||||
"field": lang['Use Max Storage Amount'],
|
||||
"fieldType": "select",
|
||||
"selector": "h_b2zl",
|
||||
"form-group-class":"autosave_bb_b2_input autosave_bb_b2_1",
|
||||
"form-group-class-pre-layer":"h_b2sld_input h_b2sld_1",
|
||||
"description": "",
|
||||
"default": "",
|
||||
"example": "",
|
||||
"possible": [
|
||||
{
|
||||
"name": lang.No,
|
||||
"value": "0"
|
||||
},
|
||||
{
|
||||
"name": lang.Yes,
|
||||
"value": "1"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"hidden": true,
|
||||
"name": "detail=bb_b2_size_limit",
|
||||
"field": lang['Max Storage Amount'],
|
||||
"form-group-class":"autosave_bb_b2_input autosave_bb_b2_1",
|
||||
"form-group-class-pre-layer":"h_b2sld_input h_b2sld_1",
|
||||
"description": "",
|
||||
"default": "10000",
|
||||
"example": "",
|
||||
"possible": ""
|
||||
},
|
||||
{
|
||||
"hidden": true,
|
||||
"name": "detail=bb_b2_dir",
|
||||
"field": lang['Save Directory'],
|
||||
"form-group-class":"autosave_bb_b2_input autosave_bb_b2_1",
|
||||
"description": "",
|
||||
"default": "/",
|
||||
"example": "",
|
||||
"possible": ""
|
||||
},
|
||||
]
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,6 +5,8 @@ module.exports = function(s){
|
|||
s.insertCompletedVideoExtender(opt.insertCompletedVideoExtender)
|
||||
s.deleteVideoFromCloudExtensions[opt.name] = opt.deleteVideoFromCloudExtensions
|
||||
s.cloudDiskUseStartupExtensions[opt.name] = opt.cloudDiskUseStartupExtensions
|
||||
if(opt.onInsertTimelapseFrame)s.onInsertTimelapseFrame(opt.onInsertTimelapseFrame)
|
||||
if(opt.onDeleteTimelapseFrameFromCloud)s.onDeleteTimelapseFrameFromCloudExtensions[opt.name] = opt.onDeleteTimelapseFrameFromCloud
|
||||
s.beforeAccountSave(opt.beforeAccountSave)
|
||||
s.onAccountSave(opt.onAccountSave)
|
||||
s.cloudDisksLoader(opt.name)
|
||||
|
@ -13,6 +15,7 @@ module.exports = function(s){
|
|||
s.loadGroupAppExtender(opt.loadGroupAppExtender)
|
||||
s.unloadGroupAppExtender(opt.unloadGroupAppExtender)
|
||||
s.insertCompletedVideoExtender(opt.insertCompletedVideoExtender)
|
||||
if(opt.onInsertTimelapseFrame)s.onInsertTimelapseFrame(opt.onInsertTimelapseFrame)
|
||||
s.beforeAccountSave(opt.beforeAccountSave)
|
||||
s.onAccountSave(opt.onAccountSave)
|
||||
s.onMonitorSave(opt.onMonitorSave)
|
||||
|
|
|
@ -34,8 +34,6 @@ module.exports = function(s,config,lang){
|
|||
userDetails.whcs_accessKeyId !== ''&&
|
||||
userDetails.whcs_secretAccessKey &&
|
||||
userDetails.whcs_secretAccessKey !== ''&&
|
||||
userDetails.whcs_region &&
|
||||
userDetails.whcs_region !== ''&&
|
||||
userDetails.whcs_bucket !== ''
|
||||
){
|
||||
if(!userDetails.whcs_dir || userDetails.whcs_dir === '/'){
|
||||
|
@ -50,6 +48,10 @@ module.exports = function(s,config,lang){
|
|||
if(!userDetails.whcs_endpoint || userDetails.whcs_endpoint === ''){
|
||||
userDetails.whcs_endpoint = 's3.wasabisys.com'
|
||||
}
|
||||
var whcs_region = null
|
||||
if(userDetails.whcs_region && userDetails.whcs_region !== ''){
|
||||
whcs_region = userDetails.whcs_region
|
||||
}
|
||||
var endpointSplit = userDetails.whcs_endpoint.split('.')
|
||||
if(endpointSplit.length > 2){
|
||||
endpointSplit.shift()
|
||||
|
@ -62,7 +64,7 @@ module.exports = function(s,config,lang){
|
|||
endpoint: wasabiEndpoint,
|
||||
accessKeyId: userDetails.whcs_accessKeyId,
|
||||
secretAccessKey: userDetails.whcs_secretAccessKey,
|
||||
region: userDetails.whcs_region
|
||||
region: whcs_region
|
||||
})
|
||||
s.group[e.ke].whcs = new s.group[e.ke].whcs.S3();
|
||||
}
|
||||
|
@ -100,9 +102,10 @@ module.exports = function(s,config,lang){
|
|||
fileStream.on('error', function (err) {
|
||||
console.error(err)
|
||||
})
|
||||
var bucketName = s.group[e.ke].init.whcs_bucket
|
||||
var saveLocation = s.group[e.ke].init.whcs_dir+e.ke+'/'+e.mid+'/'+k.filename
|
||||
s.group[e.ke].whcs.upload({
|
||||
Bucket: s.group[e.ke].init.whcs_bucket,
|
||||
Bucket: bucketName,
|
||||
Key: saveLocation,
|
||||
Body:fileStream,
|
||||
ACL:'public-read',
|
||||
|
@ -112,6 +115,8 @@ module.exports = function(s,config,lang){
|
|||
s.userLog(e,{type:lang['Wasabi Hot Cloud Storage Upload Error'],msg:err})
|
||||
}
|
||||
if(s.group[e.ke].init.whcs_log === '1' && data && data.Location){
|
||||
var cloudLink = data.Location
|
||||
cloudLink = fixCloudianUrl(e,cloudLink)
|
||||
var save = [
|
||||
e.mid,
|
||||
e.ke,
|
||||
|
@ -123,7 +128,7 @@ module.exports = function(s,config,lang){
|
|||
}),
|
||||
k.filesize,
|
||||
k.endTime,
|
||||
data.Location
|
||||
cloudLink
|
||||
]
|
||||
s.sqlQuery('INSERT INTO `Cloud Videos` (mid,ke,time,status,details,size,end,href) VALUES (?,?,?,?,?,?,?,?)',save)
|
||||
s.setCloudDiskUsedForGroup(e,{
|
||||
|
@ -135,6 +140,83 @@ module.exports = function(s,config,lang){
|
|||
})
|
||||
}
|
||||
}
|
||||
var onInsertTimelapseFrame = function(monitorObject,queryInfo,filePath){
|
||||
var e = monitorObject
|
||||
if(s.group[e.ke].whcs && s.group[e.ke].init.use_whcs !== '0' && s.group[e.ke].init.whcs_save === '1'){
|
||||
var fileStream = fs.createReadStream(filePath)
|
||||
fileStream.on('error', function (err) {
|
||||
console.error(err)
|
||||
})
|
||||
var saveLocation = s.group[e.ke].init.whcs_dir + e.ke + '/' + e.mid + '_timelapse/' + queryInfo.filename
|
||||
s.group[e.ke].whcs.upload({
|
||||
Bucket: s.group[e.ke].init.whcs_bucket,
|
||||
Key: saveLocation,
|
||||
Body: fileStream,
|
||||
ACL:'public-read',
|
||||
ContentType:'image/jpeg'
|
||||
},function(err,data){
|
||||
if(err){
|
||||
s.userLog(e,{type:lang['Wasabi Hot Cloud Storage Upload Error'],msg:err})
|
||||
}
|
||||
if(s.group[e.ke].init.whcs_log === '1' && data && data.Location){
|
||||
var save = [
|
||||
queryInfo.mid,
|
||||
queryInfo.ke,
|
||||
queryInfo.time,
|
||||
s.s({
|
||||
type : 'whcs',
|
||||
location : saveLocation,
|
||||
}),
|
||||
queryInfo.size,
|
||||
data.Location
|
||||
]
|
||||
s.sqlQuery('INSERT INTO `Cloud Timelapse Frames` (mid,ke,time,details,size,href) VALUES (?,?,?,?,?,?)',save)
|
||||
s.setCloudDiskUsedForGroup(e,{
|
||||
amount : s.kilobyteToMegabyte(queryInfo.size),
|
||||
storageType : 'whcs'
|
||||
},'timelapseFrames')
|
||||
s.purgeCloudDiskForGroup(e,'whcs','timelapseFrames')
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
var onDeleteTimelapseFrameFromCloud = function(e,frame,callback){
|
||||
// e = user
|
||||
try{
|
||||
var frameDetails = JSON.parse(frame.details)
|
||||
}catch(err){
|
||||
var frameDetails = frame.details
|
||||
}
|
||||
if(frameDetails.type !== 'whcs'){
|
||||
return
|
||||
}
|
||||
if(!frameDetails.location){
|
||||
frameDetails.location = frame.href.split(locationUrl)[1]
|
||||
}
|
||||
s.group[e.ke].whcs.deleteObject({
|
||||
Bucket: s.group[e.ke].init.whcs_bucket,
|
||||
Key: frameDetails.location,
|
||||
}, function(err, data) {
|
||||
if (err) console.log(err);
|
||||
callback()
|
||||
});
|
||||
}
|
||||
var fixCloudianUrl = function(e,cloudLink){
|
||||
if(cloudLink.indexOf('http') === -1){
|
||||
var bucketName = s.group[e.ke].init.whcs_bucket
|
||||
var endPointSplit = s.group[e.ke].init.whcs_endpoint.split('://')
|
||||
endPoint = endPointSplit[1] || endPointSplit[0]
|
||||
var protocol = `https`
|
||||
if(endPointSplit[1])protocol = endPointSplit[0]
|
||||
var cloudLinkPrefix = `${protocol}://${bucketName}.${endPoint}`
|
||||
var truncatedLink = cloudLink.substring(0, bucketName.length + 3)
|
||||
if(truncatedLink.indexOf(`${bucketName}/`) > -1){
|
||||
cloudLink = cloudLink.replace(`${bucketName}/`,'')
|
||||
}
|
||||
cloudLink = s.checkCorrectPathEnding(cloudLinkPrefix) + cloudLink
|
||||
}
|
||||
return cloudLink
|
||||
}
|
||||
//wasabi
|
||||
s.addCloudUploader({
|
||||
name: 'whcs',
|
||||
|
@ -145,5 +227,250 @@ module.exports = function(s,config,lang){
|
|||
cloudDiskUseStartupExtensions: cloudDiskUseStartupForWasabiHotCloudStorage,
|
||||
beforeAccountSave: beforeAccountSaveForWasabiHotCloudStorage,
|
||||
onAccountSave: cloudDiskUseStartupForWasabiHotCloudStorage,
|
||||
onInsertTimelapseFrame: onInsertTimelapseFrame,
|
||||
onDeleteTimelapseFrameFromCloud: onDeleteTimelapseFrameFromCloud
|
||||
})
|
||||
return {
|
||||
"evaluation": "details.use_whcs !== '0'",
|
||||
"name": lang["S3-Based Network Storage"],
|
||||
"color": "forestgreen",
|
||||
"info": [
|
||||
{
|
||||
"name": "detail=whcs_save",
|
||||
"selector":"autosave_whcs",
|
||||
"field": lang.Autosave,
|
||||
"description": "",
|
||||
"default": lang.No,
|
||||
"example": "",
|
||||
"fieldType": "select",
|
||||
"possible": [
|
||||
{
|
||||
"name": lang.No,
|
||||
"value": "0"
|
||||
},
|
||||
{
|
||||
"name": lang.Yes,
|
||||
"value": "1"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"hidden": true,
|
||||
"name": "detail=use_whcs_endpoint_select",
|
||||
"selector":"h_whcs_endpoint",
|
||||
"field": lang.Endpoint,
|
||||
"description": "",
|
||||
"default": "",
|
||||
"example": "",
|
||||
"fieldType": "select",
|
||||
"possible": [
|
||||
{
|
||||
"name": "Custom Endpoint",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"name": lang['Wasabi Hot Cloud Storage'],
|
||||
"value": "s3.wasabisys.com"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"hidden": true,
|
||||
"field": lang['Endpoint Address'],
|
||||
"name": "detail=whcs_endpoint",
|
||||
"placeholder": "s3.wasabisys.com",
|
||||
"form-group-class": "autosave_whcs_input autosave_whcs_1",
|
||||
"form-group-class-pre-layer":"h_whcs_endpoint_input h_whcs_endpoint_",
|
||||
"description": "",
|
||||
"default": "",
|
||||
"example": "",
|
||||
"possible": ""
|
||||
},
|
||||
{
|
||||
"hidden": true,
|
||||
"field": lang.Bucket,
|
||||
"name": "detail=whcs_bucket",
|
||||
"placeholder": "Example : slippery-seal",
|
||||
"form-group-class": "autosave_whcs_input autosave_whcs_1",
|
||||
"description": "",
|
||||
"default": "",
|
||||
"example": "",
|
||||
"possible": ""
|
||||
},
|
||||
{
|
||||
"hidden": true,
|
||||
"field": lang.aws_accessKeyId,
|
||||
"name": "detail=whcs_accessKeyId",
|
||||
"form-group-class": "autosave_whcs_input autosave_whcs_1",
|
||||
"description": "",
|
||||
"default": "",
|
||||
"example": "",
|
||||
"possible": ""
|
||||
},
|
||||
{
|
||||
"hidden": true,
|
||||
"name": "detail=whcs_secretAccessKey",
|
||||
"fieldType":"password",
|
||||
"placeholder": "",
|
||||
"field": lang.aws_secretAccessKey,
|
||||
"form-group-class":"autosave_whcs_input autosave_whcs_1",
|
||||
"description": "",
|
||||
"default": "",
|
||||
"example": "",
|
||||
"possible": ""
|
||||
},
|
||||
{
|
||||
"hidden": true,
|
||||
"name": "detail=whcs_region",
|
||||
"field": lang.Region,
|
||||
"fieldType": "select",
|
||||
"form-group-class":"autosave_whcs_input autosave_whcs_1",
|
||||
"description": "",
|
||||
"default": "",
|
||||
"example": "",
|
||||
"possible": [
|
||||
{
|
||||
"name": lang['No Region'],
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"name": "US West 1",
|
||||
"value": "us-west-1"
|
||||
},
|
||||
{
|
||||
"name": "US West 2)",
|
||||
"value": "us-west-2"
|
||||
},
|
||||
{
|
||||
"name": "US East 1",
|
||||
"value": "us-east-2"
|
||||
},
|
||||
{
|
||||
"name": "US East 2",
|
||||
"value": "us-east-1"
|
||||
},
|
||||
{
|
||||
"name": "Asia Pacific 1",
|
||||
"value": "ap-south-1"
|
||||
},
|
||||
{
|
||||
"name": "Asia Pacific 2",
|
||||
"value": "ap-northeast-2"
|
||||
},
|
||||
{
|
||||
"name": "Asia Pacific 3",
|
||||
"value": "ap-northeast-3"
|
||||
},
|
||||
{
|
||||
"name": "Asia Pacific 4",
|
||||
"value": "ap-southeast-1"
|
||||
},
|
||||
{
|
||||
"name": "Asia Pacific 5",
|
||||
"value": "ap-southeast-2"
|
||||
},
|
||||
{
|
||||
"name": "Asia Pacific 6",
|
||||
"value": "ap-northeast-1"
|
||||
},
|
||||
{
|
||||
"name": "Canada 1",
|
||||
"value": "ca-central-1"
|
||||
},
|
||||
{
|
||||
"name": "China 1",
|
||||
"value": "cn-north-1"
|
||||
},
|
||||
{
|
||||
"name": "China 1",
|
||||
"value": "cn-northwest-1"
|
||||
},
|
||||
{
|
||||
"name": "EU 1",
|
||||
"value": "eu-central-1"
|
||||
},
|
||||
{
|
||||
"name": "EU 2",
|
||||
"value": "eu-west-1"
|
||||
},
|
||||
{
|
||||
"name": "EU 3",
|
||||
"value": "eu-west-2"
|
||||
},
|
||||
{
|
||||
"name": "EU 4",
|
||||
"value": "eu-west-3"
|
||||
},
|
||||
{
|
||||
"name": "South America 1",
|
||||
"value": "sa-east-1"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"hidden": true,
|
||||
"name": "detail=whcs_log",
|
||||
"field": lang['Save Links to Database'],
|
||||
"fieldType": "select",
|
||||
"selector": "h_whcssld",
|
||||
"form-group-class":"autosave_whcs_input autosave_whcs_1",
|
||||
"description": "",
|
||||
"default": "",
|
||||
"example": "",
|
||||
"possible": [
|
||||
{
|
||||
"name": lang.No,
|
||||
"value": "0"
|
||||
},
|
||||
{
|
||||
"name": lang.Yes,
|
||||
"value": "1"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"hidden": true,
|
||||
"name": "detail=use_whcs_size_limit",
|
||||
"field": lang['Use Max Storage Amount'],
|
||||
"fieldType": "select",
|
||||
"selector": "h_whcszl",
|
||||
"form-group-class":"autosave_whcs_input autosave_whcs_1",
|
||||
"form-group-class-pre-layer":"h_whcssld_input h_whcssld_1",
|
||||
"description": "",
|
||||
"default": "",
|
||||
"example": "",
|
||||
"possible": [
|
||||
{
|
||||
"name": lang.No,
|
||||
"value": "0"
|
||||
},
|
||||
{
|
||||
"name": lang.Yes,
|
||||
"value": "1"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"hidden": true,
|
||||
"name": "detail=whcs_size_limit",
|
||||
"field": lang['Max Storage Amount'],
|
||||
"form-group-class":"autosave_whcs_input autosave_whcs_1",
|
||||
"form-group-class-pre-layer":"h_whcssld_input h_whcssld_1",
|
||||
"description": "",
|
||||
"default": "10000",
|
||||
"example": "",
|
||||
"possible": ""
|
||||
},
|
||||
{
|
||||
"hidden": true,
|
||||
"name": "detail=whcs_dir",
|
||||
"field": lang['Save Directory'],
|
||||
"form-group-class":"autosave_whcs_input autosave_whcs_1",
|
||||
"description": "",
|
||||
"default": "/",
|
||||
"example": "",
|
||||
"possible": ""
|
||||
},
|
||||
]
|
||||
}
|
||||
}
|
||||
|
|
|
@ -72,8 +72,8 @@ module.exports = function(s,config,lang){
|
|||
}
|
||||
var onAccountSaveForSftp = function(group,userDetails,user){
|
||||
if(s.group[user.ke] && s.group[user.ke].sftp && s.group[user.ke].init.use_sftp !== '0' && s.group[user.ke].init.sftp_save === '1'){
|
||||
Object.keys(s.group[user.ke].mon_conf).forEach(function(monitorId){
|
||||
createSftpDirectory(s.group[user.ke].mon_conf[monitorId])
|
||||
Object.keys(s.group[user.ke].rawMonitorConfigurations).forEach(function(monitorId){
|
||||
createSftpDirectory(s.group[user.ke].rawMonitorConfigurations[monitorId])
|
||||
})
|
||||
}
|
||||
}
|
||||
|
@ -87,4 +87,92 @@ module.exports = function(s,config,lang){
|
|||
onAccountSave: onAccountSaveForSftp,
|
||||
onMonitorSave: onMonitorSaveForSftp,
|
||||
})
|
||||
return {
|
||||
"evaluation": "details.use_sftp !== '0'",
|
||||
"name": lang['SFTP (SSH File Transfer)'],
|
||||
"color": "forestgreen",
|
||||
"info": [
|
||||
{
|
||||
"name": "detail=sftp_save",
|
||||
"selector":"autosave_sftp",
|
||||
"field": lang.Autosave,
|
||||
"description": "",
|
||||
"default": lang.No,
|
||||
"example": "",
|
||||
"fieldType": "select",
|
||||
"possible": [
|
||||
{
|
||||
"name": lang.No,
|
||||
"value": "0"
|
||||
},
|
||||
{
|
||||
"name": lang.Yes,
|
||||
"value": "1"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"hidden": true,
|
||||
"field": lang.Host,
|
||||
"name": "detail=sftp_host",
|
||||
"form-group-class": "autosave_sftp_input autosave_sftp_1",
|
||||
"description": "",
|
||||
"default": "",
|
||||
"example": "",
|
||||
"possible": ""
|
||||
},
|
||||
{
|
||||
"hidden": true,
|
||||
"field": lang.Port,
|
||||
"name": "detail=sftp_port",
|
||||
"form-group-class": "autosave_sftp_input autosave_sftp_1",
|
||||
"description": "",
|
||||
"default": "",
|
||||
"example": "",
|
||||
"possible": ""
|
||||
},
|
||||
{
|
||||
"hidden": true,
|
||||
"field": lang.Username,
|
||||
"name": "detail=sftp_username",
|
||||
"form-group-class": "autosave_sftp_input autosave_sftp_1",
|
||||
"description": "",
|
||||
"default": "",
|
||||
"example": "",
|
||||
"possible": ""
|
||||
},
|
||||
{
|
||||
"hidden": true,
|
||||
"field": lang.Password,
|
||||
"fieldType": "password",
|
||||
"name": "detail=sftp_password",
|
||||
"form-group-class": "autosave_sftp_input autosave_sftp_1",
|
||||
"description": "",
|
||||
"default": "",
|
||||
"example": "",
|
||||
"possible": ""
|
||||
},
|
||||
{
|
||||
"hidden": true,
|
||||
"field": lang.privateKey,
|
||||
"fieldType": "textarea",
|
||||
"name": "detail=sftp_privateKey",
|
||||
"form-group-class": "autosave_sftp_input autosave_sftp_1",
|
||||
"description": "",
|
||||
"default": "",
|
||||
"example": "",
|
||||
"possible": ""
|
||||
},
|
||||
{
|
||||
"hidden": true,
|
||||
"name": "detail=sftp_dir",
|
||||
"field": lang['Save Directory'],
|
||||
"form-group-class":"autosave_sftp_input autosave_sftp_1",
|
||||
"description": "",
|
||||
"default": "/",
|
||||
"example": "",
|
||||
"possible": ""
|
||||
},
|
||||
]
|
||||
}
|
||||
}
|
||||
|
|
|
@ -76,7 +76,7 @@ module.exports = function(s,config,lang){
|
|||
if(wfs && s.group[e.ke].init.use_webdav !== '0' && s.group[e.ke].init.webdav_save === "1"){
|
||||
var webdavUploadDir = s.group[e.ke].init.webdav_dir+e.ke+'/'+e.mid+'/'
|
||||
var startWebDavUpload = function(){
|
||||
s.group[e.ke].mon[e.id].webdavDirExist = true
|
||||
s.group[e.ke].activeMonitors[e.id].webdavDirExist = true
|
||||
var wfsWriteStream =
|
||||
fs.createReadStream(k.dir + k.filename).pipe(wfs.createWriteStream(webdavUploadDir + k.filename))
|
||||
if(s.group[e.ke].init.webdav_log === '1'){
|
||||
|
@ -102,7 +102,7 @@ module.exports = function(s,config,lang){
|
|||
s.purgeCloudDiskForGroup(e,'webdav')
|
||||
}
|
||||
}
|
||||
if(s.group[e.ke].mon[e.id].webdavDirExist !== true){
|
||||
if(s.group[e.ke].activeMonitors[e.id].webdavDirExist !== true){
|
||||
//check if webdav dir exist
|
||||
var parentPoint = 0
|
||||
var webDavParentz = webdavUploadDir.split('/')
|
||||
|
@ -166,4 +166,125 @@ module.exports = function(s,config,lang){
|
|||
beforeAccountSave: beforeAccountSaveForWebDav,
|
||||
onAccountSave: cloudDiskUseStartupForWebDav,
|
||||
})
|
||||
return {
|
||||
"evaluation": "details.use_webdav !== '0'",
|
||||
"name": lang.WebDAV,
|
||||
"color": "forestgreen",
|
||||
"info": [
|
||||
{
|
||||
"name": "detail=webdav_save",
|
||||
"selector":"autosave_webdav",
|
||||
"field": lang.Autosave,
|
||||
"description": "",
|
||||
"default": lang.No,
|
||||
"example": "",
|
||||
"fieldType": "select",
|
||||
"possible": [
|
||||
{
|
||||
"name": lang.No,
|
||||
"value": "0"
|
||||
},
|
||||
{
|
||||
"name": lang.Yes,
|
||||
"value": "1"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"hidden": true,
|
||||
"field": lang.URL,
|
||||
"name": "detail=webdav_url",
|
||||
"form-group-class": "autosave_webdav_input autosave_webdav_1",
|
||||
"description": "",
|
||||
"default": "",
|
||||
"example": "",
|
||||
"possible": ""
|
||||
},
|
||||
{
|
||||
"hidden": true,
|
||||
"field": lang.Username,
|
||||
"name": "detail=webdav_user",
|
||||
"form-group-class": "autosave_webdav_input autosave_webdav_1",
|
||||
"description": "",
|
||||
"default": "",
|
||||
"example": "",
|
||||
"possible": ""
|
||||
},
|
||||
{
|
||||
"hidden": true,
|
||||
"field": lang.Password,
|
||||
"fieldType": "password",
|
||||
"name": "detail=webdav_pass",
|
||||
"form-group-class": "autosave_webdav_input autosave_webdav_1",
|
||||
"description": "",
|
||||
"default": "",
|
||||
"example": "",
|
||||
"possible": ""
|
||||
},
|
||||
{
|
||||
"hidden": true,
|
||||
"name": "detail=webdav_log",
|
||||
"field": lang['Save Links to Database'],
|
||||
"fieldType": "select",
|
||||
"selector": "h_webdavsld",
|
||||
"form-group-class":"autosave_webdav_input autosave_webdav_1",
|
||||
"description": "",
|
||||
"default": "",
|
||||
"example": "",
|
||||
"possible": [
|
||||
{
|
||||
"name": lang.No,
|
||||
"value": "0"
|
||||
},
|
||||
{
|
||||
"name": lang.Yes,
|
||||
"value": "1"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"hidden": true,
|
||||
"name": "detail=use_webdav_size_limit",
|
||||
"field": lang['Use Max Storage Amount'],
|
||||
"fieldType": "select",
|
||||
"selector": "h_webdavzl",
|
||||
"form-group-class":"autosave_webdav_input autosave_webdav_1",
|
||||
"form-group-class-pre-layer":"h_webdavsld_input h_webdavsld_1",
|
||||
"description": "",
|
||||
"default": "",
|
||||
"example": "",
|
||||
"possible": [
|
||||
{
|
||||
"name": lang.No,
|
||||
"value": "0"
|
||||
},
|
||||
{
|
||||
"name": lang.Yes,
|
||||
"value": "1"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"hidden": true,
|
||||
"name": "detail=webdav_size_limit",
|
||||
"field": lang['Max Storage Amount'],
|
||||
"form-group-class":"autosave_webdav_input autosave_webdav_1",
|
||||
"form-group-class-pre-layer":"h_webdavsld_input h_webdavsld_1",
|
||||
"description": "",
|
||||
"default": "10000",
|
||||
"example": "",
|
||||
"possible": ""
|
||||
},
|
||||
{
|
||||
"hidden": true,
|
||||
"name": "detail=webdav_dir",
|
||||
"field": lang['Save Directory'],
|
||||
"form-group-class":"autosave_webdav_input autosave_webdav_1",
|
||||
"description": "",
|
||||
"default": "/",
|
||||
"example": "",
|
||||
"possible": ""
|
||||
},
|
||||
]
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue