mirror of
https://gitlab.com/Shinobi-Systems/ShinobiCE.git
synced 2025-03-09 15:40:15 +00:00
Son Goku+
This commit is contained in:
parent
d0b12e92e7
commit
8f804a5310
8 changed files with 495 additions and 3 deletions
|
@ -43,7 +43,11 @@ module.exports = function(s,config,lang){
|
||||||
pluginArray.push(name)
|
pluginArray.push(name)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
if(pluginArray.length > 0)s.isAtleatOneDetectorPluginConnected = true
|
if(pluginArray.length > 0){
|
||||||
|
s.isAtleatOneDetectorPluginConnected = true
|
||||||
|
}else{
|
||||||
|
s.isAtleatOneDetectorPluginConnected = false
|
||||||
|
}
|
||||||
s.detectorPluginArray = pluginArray
|
s.detectorPluginArray = pluginArray
|
||||||
}
|
}
|
||||||
s.sendToAllDetectors = function(data){
|
s.sendToAllDetectors = function(data){
|
||||||
|
|
|
@ -1,11 +1,20 @@
|
||||||
module.exports = function(s,config,lang){
|
module.exports = function(s,config,lang){
|
||||||
|
config.uploaderEjsBlocks = []
|
||||||
var loadLib = function(lib){
|
var loadLib = function(lib){
|
||||||
return require('./uploaders/' + lib + '.js')
|
var uploadersFolder = __dirname + '/uploaders/'
|
||||||
|
var libraryPath = uploadersFolder + lib + '.js'
|
||||||
|
if(lib !== 'loader'){
|
||||||
|
var libraryEjsFile = uploadersFolder + lib + '.ejs'
|
||||||
|
config.uploaderEjsBlocks.push(libraryEjsFile)
|
||||||
|
}
|
||||||
|
return require(libraryPath)
|
||||||
}
|
}
|
||||||
loadLib('loader')(s,config,lang)
|
loadLib('loader')(s,config,lang)
|
||||||
|
//cloud storage
|
||||||
|
loadLib('s3based')(s,config,lang)
|
||||||
loadLib('backblazeB2')(s,config,lang)
|
loadLib('backblazeB2')(s,config,lang)
|
||||||
loadLib('amazonS3')(s,config,lang)
|
loadLib('amazonS3')(s,config,lang)
|
||||||
loadLib('webdav')(s,config,lang)
|
loadLib('webdav')(s,config,lang)
|
||||||
loadLib('wasabi')(s,config,lang)
|
//simple storage
|
||||||
loadLib('sftp')(s,config,lang)
|
loadLib('sftp')(s,config,lang)
|
||||||
}
|
}
|
||||||
|
|
84
libs/uploaders/amazonS3.ejs
Normal file
84
libs/uploaders/amazonS3.ejs
Normal file
|
@ -0,0 +1,84 @@
|
||||||
|
<% if(details.use_aws_s3!=='0'){ %>
|
||||||
|
<div class="form-group-group forestgreen">
|
||||||
|
<h4><%-lang['Amazon S3']%></h4>
|
||||||
|
<div class="form-group">
|
||||||
|
<label><div><span><%-lang.Autosave%></span></div>
|
||||||
|
<div><select class="form-control" detail="aws_s3_save" selector="autosave_aws_s3">
|
||||||
|
<option value="0" selected><%-lang.No%></option>
|
||||||
|
<option value="1"><%-lang.Yes%></option>
|
||||||
|
</select></div>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<div class="autosave_aws_s3_input autosave_aws_s3_1">
|
||||||
|
<div class="form-group">
|
||||||
|
<label><div><span><%-lang.Bucket%></span></div>
|
||||||
|
<div><input class="form-control" detail="aws_s3_bucket" placeholder="Example : slippery-seal"></div>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="form-group col-md-12">
|
||||||
|
<label><div><span><%-lang.aws_accessKeyId%></span></div>
|
||||||
|
<div><input class="form-control" detail="aws_accessKeyId"></div>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<div class="form-group col-md-12">
|
||||||
|
<label><div><span><%-lang.aws_secretAccessKey%></span></div>
|
||||||
|
<div><input class="form-control" type="password" detail="aws_secretAccessKey"></div>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label><div><span><%-lang.Region%></span></div>
|
||||||
|
<div><select class="form-control" detail="aws_region">
|
||||||
|
<option value="us-west-1" selected>US West (N. California)</option>
|
||||||
|
<option value="us-west-2">US West (Oregon)</option>
|
||||||
|
<option value="us-east-2">US East (Ohio)</option>
|
||||||
|
<option value="us-east-1">US East (N. Virginia)</option>
|
||||||
|
<option value="ap-south-1">Asia Pacific (Mumbai)</option>
|
||||||
|
<option value="ap-northeast-2">Asia Pacific (Seoul)</option>
|
||||||
|
<option value="ap-northeast-3">Asia Pacific (Osaka-Local)**</option>
|
||||||
|
<option value="ap-southeast-1">Asia Pacific (Singapore)</option>
|
||||||
|
<option value="ap-southeast-2">Asia Pacific (Sydney)</option>
|
||||||
|
<option value="ap-northeast-1">Asia Pacific (Tokyo)</option>
|
||||||
|
<option value="ca-central-1">Canada (Central)</option>
|
||||||
|
<option value="cn-north-1">China (Beijing)</option>
|
||||||
|
<option value="cn-northwest-1">China (Ningxia)</option>
|
||||||
|
<option value="eu-central-1">EU (Frankfurt)</option>
|
||||||
|
<option value="eu-west-1">EU (Ireland)</option>
|
||||||
|
<option value="eu-west-2">EU (London)</option>
|
||||||
|
<option value="eu-west-3">EU (Paris)</option>
|
||||||
|
<option value="sa-east-1">South America (São Paulo)</option>
|
||||||
|
</select></div>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label><div><span><%-lang['Save Links to Database']%></span></div>
|
||||||
|
<div><select class="form-control" detail="aws_s3_log" selector="h_s3sld">
|
||||||
|
<option value="0"><%-lang.No%></option>
|
||||||
|
<option value="1" selected><%-lang.Yes%></option>
|
||||||
|
</select></div>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<div class="h_s3sld_input h_s3sld_1">
|
||||||
|
<div class="form-group">
|
||||||
|
<label><div><span><%-lang['Use Max Storage Amount']%></span></div>
|
||||||
|
<div><select class="form-control" detail="use_aws_s3_size_limit" selector="h_s3zl">
|
||||||
|
<option value="0" selected><%-lang.No%></option>
|
||||||
|
<option value="1"><%-lang.Yes%></option>
|
||||||
|
</select></div>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<div class="form-group h_s3zl_input h_s3zl_1">
|
||||||
|
<label><div><span><%-lang['Max Storage Amount']%></span></div>
|
||||||
|
<div><input class="form-control" placeholder="10000" detail="aws_s3_size_limit"></div>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label><div><span><%-lang['Save Directory']%></span></div>
|
||||||
|
<div><input class="form-control" placeholder="" detail="aws_s3_dir"></div>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<% } %>
|
60
libs/uploaders/backblazeB2.ejs
Normal file
60
libs/uploaders/backblazeB2.ejs
Normal file
|
@ -0,0 +1,60 @@
|
||||||
|
<% if(details.use_bb_b2!=='0'){ %>
|
||||||
|
<div class="form-group-group forestgreen">
|
||||||
|
<h4><%-lang['Backblaze B2']%></h4>
|
||||||
|
<div class="form-group">
|
||||||
|
<label><div><span><%-lang.Autosave%></span></div>
|
||||||
|
<div><select class="form-control" detail="bb_b2_save" selector="autosave_bb_b2">
|
||||||
|
<option value="0" selected><%-lang.No%></option>
|
||||||
|
<option value="1"><%-lang.Yes%></option>
|
||||||
|
</select></div>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<div class="autosave_bb_b2_input autosave_bb_b2_1">
|
||||||
|
<div class="form-group">
|
||||||
|
<label><div><span><%-lang.Bucket%></span></div>
|
||||||
|
<div><input class="form-control" detail="bb_b2_bucket" placeholder="Example : slippery-seal"></div>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="form-group col-md-12">
|
||||||
|
<label><div><span><%-lang.accountId%></span></div>
|
||||||
|
<div><input class="form-control" detail="bb_b2_accountId"></div>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<div class="form-group col-md-12">
|
||||||
|
<label><div><span><%-lang.applicationKey%></span></div>
|
||||||
|
<div><input class="form-control" type="password" detail="bb_b2_applicationKey"></div>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label><div><span><%-lang['Save Links to Database']%></span></div>
|
||||||
|
<div><select class="form-control" detail="bb_b2_log" selector="h_b2sld">
|
||||||
|
<option value="0"><%-lang.No%></option>
|
||||||
|
<option value="1" selected><%-lang.Yes%></option>
|
||||||
|
</select></div>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<div class="h_b2sld_input h_b2sld_1">
|
||||||
|
<div class="form-group">
|
||||||
|
<label><div><span><%-lang['Use Max Storage Amount']%></span></div>
|
||||||
|
<div><select class="form-control" detail="use_bb_b2_size_limit" selector="h_b2zl">
|
||||||
|
<option value="0" selected><%-lang.No%></option>
|
||||||
|
<option value="1"><%-lang.Yes%></option>
|
||||||
|
</select></div>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<div class="form-group h_b2zl_input h_b2zl_1">
|
||||||
|
<label><div><span><%-lang['Max Storage Amount']%></span></div>
|
||||||
|
<div><input class="form-control" placeholder="10000" detail="bb_b2_size_limit"></div>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label><div><span><%-lang['Save Directory']%></span></div>
|
||||||
|
<div><input class="form-control" placeholder="" detail="bb_b2_dir"></div>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<% } %>
|
81
libs/uploaders/s3based.ejs
Normal file
81
libs/uploaders/s3based.ejs
Normal file
|
@ -0,0 +1,81 @@
|
||||||
|
<% if(details.use_whcs!=='0'){ %>
|
||||||
|
<div class="form-group-group forestgreen">
|
||||||
|
<h4><%-lang['S3-Based Network Storage']%></h4>
|
||||||
|
<div class="form-group">
|
||||||
|
<label><div><span><%-lang.Autosave%></span></div>
|
||||||
|
<div><select class="form-control" detail="whcs_save" selector="autosave_whcs">
|
||||||
|
<option value="0" selected><%-lang.No%></option>
|
||||||
|
<option value="1"><%-lang.Yes%></option>
|
||||||
|
</select></div>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<div class="autosave_whcs_input autosave_whcs_1">
|
||||||
|
<div class="form-group">
|
||||||
|
<label><div><span><%-lang['Endpoint']%></span></div>
|
||||||
|
<div><select class="form-control" detail="use_whcs_endpoint_select" selector="h_whcs_endpoint">
|
||||||
|
<option value=""><%- lang['Custom Endpoint'] %></option>
|
||||||
|
<option value="s3.wasabisys.com" selected><%- lang['Wasabi Hot Cloud Storage'] %></option>
|
||||||
|
</select></div>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<div class="form-group h_whcs_endpoint_input h_whcs_endpoint_" style="display:none">
|
||||||
|
<label><div><span><%-lang['Endpoint Address']%></span></div>
|
||||||
|
<div><input class="form-control" detail="whcs_endpoint" placeholder="s3.wasabisys.com"></div>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label><div><span><%-lang.Bucket%></span></div>
|
||||||
|
<div><input class="form-control" detail="whcs_bucket" placeholder="Example : slippery-seal"></div>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="form-group col-md-12">
|
||||||
|
<label><div><span><%-lang.aws_accessKeyId%></span></div>
|
||||||
|
<div><input class="form-control" detail="whcs_accessKeyId"></div>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<div class="form-group col-md-12">
|
||||||
|
<label><div><span><%-lang.aws_secretAccessKey%></span></div>
|
||||||
|
<div><input class="form-control" type="password" detail="whcs_secretAccessKey"></div>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label><div><span><%-lang.Region%></span></div>
|
||||||
|
<div><select class="form-control" detail="whcs_region">
|
||||||
|
<option value="us-west-1" selected>US West</option>
|
||||||
|
<option value="us-east-1">US East</option>
|
||||||
|
</select></div>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label><div><span><%-lang['Save Links to Database']%></span></div>
|
||||||
|
<div><select class="form-control" detail="whcs_log" selector="h_whcssld">
|
||||||
|
<option value="0"><%-lang.No%></option>
|
||||||
|
<option value="1" selected><%-lang.Yes%></option>
|
||||||
|
</select></div>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<div class="h_whcssld_input h_whcssld_1">
|
||||||
|
<div class="form-group">
|
||||||
|
<label><div><span><%-lang['Use Max Storage Amount']%></span></div>
|
||||||
|
<div><select class="form-control" detail="use_whcs_size_limit" selector="h_whcszl">
|
||||||
|
<option value="0" selected><%-lang.No%></option>
|
||||||
|
<option value="1"><%-lang.Yes%></option>
|
||||||
|
</select></div>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<div class="form-group h_whcszl_input h_whcszl_1">
|
||||||
|
<label><div><span><%-lang['Max Storage Amount']%></span></div>
|
||||||
|
<div><input class="form-control" placeholder="10000" detail="whcs_size_limit"></div>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label><div><span><%-lang['Save Directory']%></span></div>
|
||||||
|
<div><input class="form-control" placeholder="" detail="whcs_dir"></div>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<% } %>
|
149
libs/uploaders/s3based.js
Normal file
149
libs/uploaders/s3based.js
Normal file
|
@ -0,0 +1,149 @@
|
||||||
|
var fs = require('fs');
|
||||||
|
module.exports = function(s,config,lang){
|
||||||
|
//Wasabi Hot Cloud Storage
|
||||||
|
var beforeAccountSaveForWasabiHotCloudStorage = function(d){
|
||||||
|
//d = save event
|
||||||
|
d.form.details.whcs_use_global=d.d.whcs_use_global
|
||||||
|
d.form.details.use_whcs=d.d.use_whcs
|
||||||
|
}
|
||||||
|
var cloudDiskUseStartupForWasabiHotCloudStorage = function(group,userDetails){
|
||||||
|
group.cloudDiskUse['whcs'].name = 'Wasabi Hot Cloud Storage'
|
||||||
|
group.cloudDiskUse['whcs'].sizeLimitCheck = (userDetails.use_whcs_size_limit === '1')
|
||||||
|
if(!userDetails.whcs_size_limit || userDetails.whcs_size_limit === ''){
|
||||||
|
group.cloudDiskUse['whcs'].sizeLimit = 10000
|
||||||
|
}else{
|
||||||
|
group.cloudDiskUse['whcs'].sizeLimit = parseFloat(userDetails.whcs_size_limit)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var loadWasabiHotCloudStorageForUser = function(e){
|
||||||
|
// e = user
|
||||||
|
var userDetails = JSON.parse(e.details)
|
||||||
|
if(userDetails.whcs_use_global === '1' && config.cloudUploaders && config.cloudUploaders.WasabiHotCloudStorage){
|
||||||
|
// {
|
||||||
|
// whcs_accessKeyId: "",
|
||||||
|
// whcs_secretAccessKey: "",
|
||||||
|
// whcs_region: "",
|
||||||
|
// whcs_bucket: "",
|
||||||
|
// whcs_dir: "",
|
||||||
|
// }
|
||||||
|
userDetails = Object.assign(userDetails,config.cloudUploaders.WasabiHotCloudStorage)
|
||||||
|
}
|
||||||
|
//Wasabi Hot Cloud Storage
|
||||||
|
if(!s.group[e.ke].whcs &&
|
||||||
|
userDetails.whcs !== '0' &&
|
||||||
|
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 === '/'){
|
||||||
|
userDetails.whcs_dir = ''
|
||||||
|
}
|
||||||
|
if(userDetails.whcs_dir !== ''){
|
||||||
|
userDetails.whcs_dir = s.checkCorrectPathEnding(userDetails.whcs_dir)
|
||||||
|
}
|
||||||
|
if(userDetails.use_whcs_endpoint_select && userDetails.use_whcs_endpoint_select !== ''){
|
||||||
|
userDetails.whcs_endpoint = userDetails.use_whcs_endpoint_select
|
||||||
|
}
|
||||||
|
if(!userDetails.whcs_endpoint || userDetails.whcs_endpoint === ''){
|
||||||
|
userDetails.whcs_endpoint = 's3.wasabisys.com'
|
||||||
|
}
|
||||||
|
var endpointSplit = userDetails.whcs_endpoint.split('.')
|
||||||
|
if(endpointSplit.length > 2){
|
||||||
|
endpointSplit.shift()
|
||||||
|
}
|
||||||
|
var locationUrl = endpointSplit.join('.')
|
||||||
|
var AWS = new require("aws-sdk")
|
||||||
|
s.group[e.ke].whcs = AWS
|
||||||
|
var wasabiEndpoint = new AWS.Endpoint(userDetails.whcs_endpoint)
|
||||||
|
s.group[e.ke].whcs.config = new s.group[e.ke].whcs.Config({
|
||||||
|
endpoint: wasabiEndpoint,
|
||||||
|
accessKeyId: userDetails.whcs_accessKeyId,
|
||||||
|
secretAccessKey: userDetails.whcs_secretAccessKey,
|
||||||
|
region: userDetails.whcs_region
|
||||||
|
})
|
||||||
|
s.group[e.ke].whcs = new s.group[e.ke].whcs.S3();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var unloadWasabiHotCloudStorageForUser = function(user){
|
||||||
|
s.group[user.ke].whcs = null
|
||||||
|
}
|
||||||
|
var deleteVideoFromWasabiHotCloudStorage = function(e,video,callback){
|
||||||
|
// e = user
|
||||||
|
try{
|
||||||
|
var videoDetails = JSON.parse(video.details)
|
||||||
|
}catch(err){
|
||||||
|
var videoDetails = video.details
|
||||||
|
}
|
||||||
|
if(!videoDetails.location){
|
||||||
|
videoDetails.location = video.href.split(locationUrl)[1]
|
||||||
|
}
|
||||||
|
s.group[e.ke].whcs.deleteObject({
|
||||||
|
Bucket: s.group[e.ke].init.whcs_bucket,
|
||||||
|
Key: videoDetails.location,
|
||||||
|
}, function(err, data) {
|
||||||
|
if (err) console.log(err);
|
||||||
|
callback()
|
||||||
|
});
|
||||||
|
}
|
||||||
|
var uploadVideoToWasabiHotCloudStorage = function(e,k){
|
||||||
|
//e = video object
|
||||||
|
//k = temporary values
|
||||||
|
if(!k)k={};
|
||||||
|
//cloud saver - Wasabi Hot Cloud Storage
|
||||||
|
if(s.group[e.ke].whcs && s.group[e.ke].init.use_whcs !== '0' && s.group[e.ke].init.whcs_save === '1'){
|
||||||
|
var ext = k.filename.split('.')
|
||||||
|
ext = ext[ext.length - 1]
|
||||||
|
var fileStream = fs.createReadStream(k.dir+k.filename);
|
||||||
|
fileStream.on('error', function (err) {
|
||||||
|
console.error(err)
|
||||||
|
})
|
||||||
|
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,
|
||||||
|
Key: saveLocation,
|
||||||
|
Body:fileStream,
|
||||||
|
ACL:'public-read',
|
||||||
|
ContentType:'video/'+ext
|
||||||
|
},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 = [
|
||||||
|
e.mid,
|
||||||
|
e.ke,
|
||||||
|
k.startTime,
|
||||||
|
1,
|
||||||
|
s.s({
|
||||||
|
type : 'whcs',
|
||||||
|
location : saveLocation
|
||||||
|
}),
|
||||||
|
k.filesize,
|
||||||
|
k.endTime,
|
||||||
|
data.Location
|
||||||
|
]
|
||||||
|
s.sqlQuery('INSERT INTO `Cloud Videos` (mid,ke,time,status,details,size,end,href) VALUES (?,?,?,?,?,?,?,?)',save)
|
||||||
|
s.setCloudDiskUsedForGroup(e,{
|
||||||
|
amount : k.filesizeMB,
|
||||||
|
storageType : 'whcs'
|
||||||
|
})
|
||||||
|
s.purgeCloudDiskForGroup(e,'whcs')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//wasabi
|
||||||
|
s.addCloudUploader({
|
||||||
|
name: 'whcs',
|
||||||
|
loadGroupAppExtender: loadWasabiHotCloudStorageForUser,
|
||||||
|
unloadGroupAppExtender: unloadWasabiHotCloudStorageForUser,
|
||||||
|
insertCompletedVideoExtender: uploadVideoToWasabiHotCloudStorage,
|
||||||
|
deleteVideoFromCloudExtensions: deleteVideoFromWasabiHotCloudStorage,
|
||||||
|
cloudDiskUseStartupExtensions: cloudDiskUseStartupForWasabiHotCloudStorage,
|
||||||
|
beforeAccountSave: beforeAccountSaveForWasabiHotCloudStorage,
|
||||||
|
onAccountSave: cloudDiskUseStartupForWasabiHotCloudStorage,
|
||||||
|
})
|
||||||
|
}
|
45
libs/uploaders/sftp.ejs
Normal file
45
libs/uploaders/sftp.ejs
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
<% if(details.use_sftp!=='0'){ %>
|
||||||
|
<div class="form-group-group forestgreen">
|
||||||
|
<h4><%-lang['SFTP (SSH File Transfer)']%></h4>
|
||||||
|
<div class="form-group">
|
||||||
|
<label><div><span><%-lang.Autosave%></span></div>
|
||||||
|
<div><select class="form-control" detail="sftp_save" selector="autosave_sftp">
|
||||||
|
<option value="0" selected><%-lang.No%></option>
|
||||||
|
<option value="1"><%-lang.Yes%></option>
|
||||||
|
</select></div>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<div class="autosave_sftp_input autosave_sftp_1">
|
||||||
|
<div class="form-group">
|
||||||
|
<label><div><span><%-lang.Host%></span></div>
|
||||||
|
<div><input class="form-control" detail="sftp_host"></div>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label><div><span><%-lang.Port%></span></div>
|
||||||
|
<div><input class="form-control" type="text" detail="sftp_port"></div>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label><div><span><%-lang.Username%></span></div>
|
||||||
|
<div><input class="form-control" type="text" detail="sftp_username"></div>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label><div><span><%-lang.Password%></span></div>
|
||||||
|
<div><input class="form-control" type="password" detail="sftp_password"></div>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label><div><span><%-lang.privateKey%></span></div>
|
||||||
|
<div><textarea class="form-control" type="password" detail="sftp_privateKey"></textarea></div>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label><div><span><%-lang['Save Directory']%></span></div>
|
||||||
|
<div><input class="form-control" placeholder="" detail="sftp_dir"></div>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<% } %>
|
60
libs/uploaders/webdav.ejs
Normal file
60
libs/uploaders/webdav.ejs
Normal file
|
@ -0,0 +1,60 @@
|
||||||
|
<% if(details.use_webdav!=='0'){ %>
|
||||||
|
<div class="form-group-group forestgreen">
|
||||||
|
<h4><%-lang.WebDAV%></h4>
|
||||||
|
<div class="form-group">
|
||||||
|
<label><div><span><%-lang.Autosave%></span></div>
|
||||||
|
<div><select class="form-control" detail="webdav_save" selector="autosave_webdav">
|
||||||
|
<option value="0"><%-lang.No%></option>
|
||||||
|
<option value="1"><%-lang.Yes%></option>
|
||||||
|
</select></div>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<div class="autosave_webdav_input autosave_webdav_1">
|
||||||
|
<div class="form-group">
|
||||||
|
<label><div><span><%-lang.URL%></span></div>
|
||||||
|
<div><input class="form-control" detail="webdav_url"></div>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="form-group col-md-12">
|
||||||
|
<label><div><span><%-lang.Username%></span></div>
|
||||||
|
<div><input class="form-control" detail="webdav_user"></div>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<div class="form-group col-md-12">
|
||||||
|
<label><div><span><%-lang.Password%></span></div>
|
||||||
|
<div><input class="form-control" type="password" detail="webdav_pass"></div>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label><div><span><%-lang['Save Links to Database']%></span></div>
|
||||||
|
<div><select class="form-control" detail="webdav_log" selector="h_webdavsld">
|
||||||
|
<option value="0"><%-lang.No%></option>
|
||||||
|
<option value="1" selected><%-lang.Yes%></option>
|
||||||
|
</select></div>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<div class="h_webdavsld_input h_webdavsld_1">
|
||||||
|
<div class="form-group">
|
||||||
|
<label><div><span><%-lang['Use Max Storage Amount']%></span></div>
|
||||||
|
<div><select class="form-control" detail="use_webdav_size_limit" selector="h_webdavzl">
|
||||||
|
<option value="0" selected><%-lang.No%></option>
|
||||||
|
<option value="1"><%-lang.Yes%></option>
|
||||||
|
</select></div>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<div class="form-group h_webdavzl_input h_webdavzl_1">
|
||||||
|
<label><div><span><%-lang['Max Storage Amount']%></span></div>
|
||||||
|
<div><input class="form-control" placeholder="10000" detail="webdav_size_limit"></div>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label><div><span><%-lang['Save Directory']%></span></div>
|
||||||
|
<div><input class="form-control" placeholder="/" detail="webdav_dir"></div>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<% } %>
|
Loading…
Add table
Add a link
Reference in a new issue