|
@@ -6,6 +6,8 @@ var path = require('path');
|
|
|
var logHelper = require("./LjLogHelper");
|
|
|
var apiHelper = require("../helper/LjApiHelper");
|
|
|
var httpHelper = require("../helper/LjHttpHelper");
|
|
|
+var os = require('os');
|
|
|
+
|
|
|
|
|
|
/**
|
|
|
* The helper of file
|
|
@@ -17,7 +19,7 @@ class LjFileHelper
|
|
|
* @param fileUrl the file url
|
|
|
* @returns {boolean}
|
|
|
*/
|
|
|
- static downloadFile(fileUrl,opt)
|
|
|
+ static downloadFile(fileUrl, opt)
|
|
|
{
|
|
|
//获取文件属性对象
|
|
|
var filePropObj = this.getFileProperty(fileUrl);
|
|
@@ -49,16 +51,17 @@ class LjFileHelper
|
|
|
logHelper.info("Succeeded to down video:" + localFileDirNew);
|
|
|
|
|
|
//加密存储
|
|
|
- LjFileHelper.writeEncryptedStream(localFileDir, localFileDirNew,function(){
|
|
|
+ LjFileHelper.writeEncryptedStream(localFileDir, localFileDirNew, function ()
|
|
|
+ {
|
|
|
//获取文件基本信息
|
|
|
- fs.stat(localFileDirNew,function(err,stats)
|
|
|
+ fs.stat(localFileDirNew, function (err, stats)
|
|
|
{
|
|
|
- if(err==null)
|
|
|
+ if (err == null)
|
|
|
{
|
|
|
//文件大小
|
|
|
var fileSize = stats.size;
|
|
|
LjFileHelper.updateDownloadResSize(opt);
|
|
|
- logHelper.info("Succeeded to encrypt video:" + localFileDirNew +" with file size["+fileSize+"]");
|
|
|
+ logHelper.info("Succeeded to encrypt video:" + localFileDirNew + " with file size[" + fileSize + "]");
|
|
|
}
|
|
|
});
|
|
|
});
|
|
@@ -93,16 +96,17 @@ class LjFileHelper
|
|
|
logHelper.info("Succeeded to down audio:" + localFileDirNew);
|
|
|
|
|
|
//加密有声读物
|
|
|
- LjFileHelper.writeEncryptedStream(localFileDir, localFileDirNew,function(){
|
|
|
+ LjFileHelper.writeEncryptedStream(localFileDir, localFileDirNew, function ()
|
|
|
+ {
|
|
|
//获取文件基本信息
|
|
|
- fs.stat(localFileDirNew,function(err,stats)
|
|
|
+ fs.stat(localFileDirNew, function (err, stats)
|
|
|
{
|
|
|
- if(err==null)
|
|
|
+ if (err == null)
|
|
|
{
|
|
|
//文件大小
|
|
|
var fileSize = stats.size;
|
|
|
LjFileHelper.updateDownloadResSize(opt);
|
|
|
- logHelper.info("Succeeded to encrypt audio:" + localFileDirNew +" with file size["+fileSize+"]");
|
|
|
+ logHelper.info("Succeeded to encrypt audio:" + localFileDirNew + " with file size[" + fileSize + "]");
|
|
|
}
|
|
|
});
|
|
|
});
|
|
@@ -136,17 +140,18 @@ class LjFileHelper
|
|
|
logHelper.info("Succeeded to down image:" + localFileDirNew);
|
|
|
|
|
|
//加密图片
|
|
|
- LjFileHelper.writeEncryptedStream(localFileDir, localFileDirNew,function(){
|
|
|
+ LjFileHelper.writeEncryptedStream(localFileDir, localFileDirNew, function ()
|
|
|
+ {
|
|
|
//获取文件基本信息
|
|
|
- fs.stat(localFileDirNew,function(err,stats)
|
|
|
+ fs.stat(localFileDirNew, function (err, stats)
|
|
|
{
|
|
|
- if(err==null)
|
|
|
+ if (err == null)
|
|
|
{
|
|
|
//文件大小
|
|
|
var fileSize = stats.size;
|
|
|
LjFileHelper.updateDownloadResSize(opt);
|
|
|
|
|
|
- logHelper.info("Succeeded to encrypt image:" + localFileDirNew +" with file size["+fileSize+"]");
|
|
|
+ logHelper.info("Succeeded to encrypt image:" + localFileDirNew + " with file size[" + fileSize + "]");
|
|
|
}
|
|
|
});
|
|
|
});
|
|
@@ -238,17 +243,36 @@ class LjFileHelper
|
|
|
var fileType = fileName.split(".")[1]
|
|
|
|
|
|
var newFileDir = "";
|
|
|
- if (fileType == "m3u8")
|
|
|
+
|
|
|
+ var platform = os.platform();
|
|
|
+ if (platform == "win32")
|
|
|
{
|
|
|
- fileName = fileName.replace(".m3u8", "_new.mp4")
|
|
|
- newFileDir = ljConst.BASE_DIR + fileName.replace(/\*/g, '\\');
|
|
|
+ if (fileType == "m3u8")
|
|
|
+ {
|
|
|
+ fileName = fileName.replace(".m3u8", "_new.mp4")
|
|
|
+ newFileDir = ljConst.BASE_DIR + fileName.replace(/\*/g, '\\');
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ fileName = fileName.replace(".", "_new.")
|
|
|
+ newFileDir = ljConst.BASE_DIR + fileName.replace(/\*/g, '\\');
|
|
|
+ }
|
|
|
}
|
|
|
- else
|
|
|
+ else if (platform == "darwin")
|
|
|
{
|
|
|
- fileName = fileName.replace(".", "_new.")
|
|
|
- newFileDir = ljConst.BASE_DIR + fileName.replace(/\*/g, '\\');
|
|
|
+ if (fileType == "m3u8")
|
|
|
+ {
|
|
|
+ fileName = fileName.replace(".m3u8", "_new.mp4")
|
|
|
+ newFileDir = ljConst.BASE_DIR + fileName.replace(/\*/g, '/');
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ fileName = fileName.replace(".", "_new.")
|
|
|
+ newFileDir = ljConst.BASE_DIR + fileName.replace(/\*/g, '/');
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
+
|
|
|
return newFileDir;
|
|
|
}
|
|
|
|
|
@@ -285,9 +309,21 @@ class LjFileHelper
|
|
|
|
|
|
var splitArr = fileUrl.split('/')
|
|
|
var arrLen = splitArr.length;
|
|
|
- for (var i = 3; i < arrLen - 1; i++)
|
|
|
+ var platform = os.platform();
|
|
|
+ if (platform == "win32")
|
|
|
{
|
|
|
- folderDir += splitArr[i] + "\\";
|
|
|
+
|
|
|
+ for (var i = 3; i < arrLen - 1; i++)
|
|
|
+ {
|
|
|
+ folderDir += splitArr[i] + "\\";
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else if(platform == "darwin")
|
|
|
+ {
|
|
|
+ for (var i = 3; i < arrLen - 1; i++)
|
|
|
+ {
|
|
|
+ folderDir += splitArr[i] + "/";
|
|
|
+ }
|
|
|
}
|
|
|
//创建文件夹目录
|
|
|
this.mkdirsSync(folderDir);
|
|
@@ -377,7 +413,7 @@ class LjFileHelper
|
|
|
* @param fSrc the source file
|
|
|
* @param fDest the dest file
|
|
|
*/
|
|
|
- static writeEncryptedStream(fSrc, fDest,callback)
|
|
|
+ static writeEncryptedStream(fSrc, fDest, callback)
|
|
|
{
|
|
|
var rs = fs.createReadStream(fSrc);
|
|
|
var ws = fs.createWriteStream(fDest);
|