Preparation for pkg

Add abillity setup storage folder outside the repo
This commit is contained in:
Alexey Golubev
2020-02-12 11:37:04 +03:00
parent 7d79efe1f1
commit 4de89aa858
7 changed files with 30 additions and 24 deletions

3
.gitignore vendored
View File

@ -5,8 +5,9 @@
/build/deploy
/build/*.log
/web/documentserver-example/nodejs/node_modules
/web/documentserver-example/nodejs/public/files
/web/documentserver-example/nodejs/files
/web/documentserver-example/nodejs/config/local.json
/web/documentserver-example/nodejs/example
**/.vscode/
**/.idea
/web/documentserver-example/java/target/

View File

@ -35,6 +35,7 @@ const syncRequest = require("sync-request");
const jwt = require('jsonwebtoken');
const config = require('config');
const configServer = config.get('server');
const storageFolder = configServer.get("storageFolder");
const mime = require("mime");
const docManager = require("./helpers/docManager");
const documentService = require("./helpers/documentService");
@ -99,7 +100,7 @@ app.use(bodyParser.urlencoded({ extended: false }));
app.get("/", function (req, res) {
try {
docManager.init(__dirname, req, res);
docManager.init(storageFolder, req, res);
res.render("index", {
preloaderUrl: siteUrl + configServer.get('preloaderUrl'),
@ -119,7 +120,7 @@ app.get("/", function (req, res) {
});
app.get("/download", function(req, res) {
docManager.init(__dirname, req, res);
docManager.init(storageFolder, req, res);
var fileName = fileUtility.getFileName(req.query.fileName);
var userAddress = docManager.curUserHostAddress();
@ -140,11 +141,11 @@ app.get("/download", function(req, res) {
app.post("/upload", function (req, res) {
docManager.init(__dirname, req, res);
docManager.init(storageFolder, req, res);
docManager.storagePath(""); //mkdir if not exist
const userIp = docManager.curUserHostAddress();
const uploadDir = path.join("./public", configServer.get('storageFolder'), userIp);
const uploadDir = path.join(storageFolder, userIp);
const uploadDirTmp = path.join(uploadDir, 'tmp');
docManager.createDirectory(uploadDirTmp);
@ -297,7 +298,7 @@ app.get("/convert", function (req, res) {
app.delete("/file", function (req, res) {
try {
docManager.init(__dirname, req, res);
docManager.init(storageFolder, req, res);
let fileName = req.query.filename;
if (fileName) {
fileName = fileUtility.getFileName(fileName);
@ -322,7 +323,7 @@ app.delete("/file", function (req, res) {
app.post("/track", function (req, res) {
docManager.init(__dirname, req, res);
docManager.init(storageFolder, req, res);
var userAddress = req.query.useraddress;
var fileName = fileUtility.getFileName(req.query.filename);
@ -513,7 +514,7 @@ app.post("/track", function (req, res) {
app.get("/editor", function (req, res) {
try {
docManager.init(__dirname, req, res);
docManager.init(storageFolder, req, res);
var fileExt = req.query.fileExt;
var history = [];

View File

@ -22,13 +22,14 @@
"viewedDocs": [".pdf", ".djvu", ".xps"],
"editedDocs": [".docx", ".xlsx", ".csv", ".pptx", ".ppsx", ".txt"],
"convertedDocs": [".docm", ".doc", ".dotx", ".dotm", ".dot", ".odt", ".fodt", ".ott", ".xlsm", ".xls", ".xltx", ".xltm", ".xlt", ".ods", ".fods", ".ots", ".pptm", ".ppt", ".ppsm", ".pps", ".potx", ".potm", ".pot", ".odp", ".fodp", ".otp", ".rtf", ".mht", ".html", ".htm", ".epub"],
"storageFolder": "files",
"storageFolder": "./files",
"storagePath": "/files",
"maxFileSize": 1073741824,
"mobileRegEx": "android|avantgo|playbook|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od|ad)|iris|kindle|lge |maemo|midp|mmp|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|symbian|treo|up\\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino",
"static":[
{
"name": "/public",
"path": "public"
"name": "/files",
"path": "./files"
}
],
"token": {

View File

@ -1,6 +1,13 @@
{
"server": {
"siteUrl": "/",
"maxFileSize": 104857600
"maxFileSize": 104857600,
"storageFolder": "/var/lib/onlyoffice/documentserver-example/files",
"static":[
{
"name": "/files",
"path": "/var/lib/onlyoffice/documentserver-example/files"
}
]
}
}

View File

@ -4,8 +4,8 @@
"maxFileSize": 104857600,
"static":[
{
"name": "/public",
"path": "public",
"name": "/files",
"path": "./files",
"options": {"maxAge": "7d"}
}
]

View File

@ -32,7 +32,6 @@ const documentService = require("./documentService");
const cacheManager = require("./cacheManager");
const guidManager = require("./guidManager");
const configServer = require('config').get('server');
const storageFolder = configServer.get('storageFolder');
const os = require("os");
let docManager = {};
@ -60,8 +59,6 @@ docManager.init = function (dir, req, res) {
docManager.dir = dir;
docManager.req = req;
docManager.res = res;
this.createDirectory(path.join(docManager.dir, "public", storageFolder));
};
docManager.getLang = function () {
@ -113,7 +110,7 @@ docManager.getCorrectName = function (fileName, userAddress) {
docManager.createDemo = function (demoName, userid, username) {
const fileName = docManager.getCorrectName(demoName);
docManager.copyFile(path.join(docManager.dir, "public", "samples", demoName), docManager.storagePath(fileName));
docManager.copyFile(path.join(__dirname, "..","public", "samples", demoName), docManager.storagePath(fileName));
docManager.saveFileData(fileName, userid, username);
@ -149,9 +146,8 @@ docManager.getFileUri = function (fileName) {
docManager.getlocalFileUri = function (fileName, version, forDocumentServer) {
const serverPath = docManager.getServerUrl(forDocumentServer);
const storagePath = storageFolder.length ? storageFolder + "/" : "";
const hostAddress = docManager.curUserHostAddress();
const url = serverPath + "/" + storagePath + hostAddress + "/" + encodeURIComponent(fileName);
const url = serverPath + configServer.get("storagePath") + "/" + hostAddress + "/" + encodeURIComponent(fileName);
if (!version) {
return url;
}
@ -172,13 +168,13 @@ docManager.getCallback = function (fileName) {
docManager.storagePath = function (fileName, userAddress) {
fileName = fileUtility.getFileName(fileName);
const directory = path.join(docManager.dir, "public", storageFolder, docManager.curUserHostAddress(userAddress));
const directory = path.join(docManager.dir, docManager.curUserHostAddress(userAddress));
this.createDirectory(directory);
return path.join(directory, fileName);
};
docManager.forcesavePath = function (fileName, userAddress, create) {
let directory = path.join(docManager.dir, "public", storageFolder, docManager.curUserHostAddress(userAddress));
let directory = path.join(docManager.dir, docManager.curUserHostAddress(userAddress));
if (!this.existsSync(directory)) {
return "";
}
@ -195,7 +191,7 @@ docManager.forcesavePath = function (fileName, userAddress, create) {
};
docManager.historyPath = function (fileName, userAddress, create) {
let directory = path.join(docManager.dir, "public", storageFolder, docManager.curUserHostAddress(userAddress));
let directory = path.join(docManager.dir, docManager.curUserHostAddress(userAddress));
if (!this.existsSync(directory)) {
return "";
}
@ -232,7 +228,7 @@ docManager.changesUser = function (fileName, userAddress, version) {
};
docManager.getStoredFiles = function () {
const directory = path.join(docManager.dir, "public", storageFolder, docManager.curUserHostAddress());
const directory = path.join(docManager.dir, docManager.curUserHostAddress());
this.createDirectory(directory);
const result = [];
const storedFiles = fileSystem.readdirSync(directory);