update to v1.2.0 完善了在线解码功能

This commit is contained in:
kohgylw 2024-01-13 17:34:39 +08:00
parent 6b81cf014e
commit 00ce501a6a
4 changed files with 28 additions and 33 deletions

View File

@ -1,4 +1,4 @@
kiftd项目 计划表-2024-01-11 by 青阳龙野
kiftd项目 计划表-2024-01-13 by 青阳龙野
已完成 v1.0.17
--------------
@ -204,16 +204,17 @@ test.auth.xxx=ucd
计划中 v1.2.0
--------------
【已完成】将文件体积的单位精确到Byte以便用户能够更加精准地获取文件体积。
【已完成】新增文件夹体积计算功能:当访问者打开文件夹的“详细信息...”模态框时,系统将实时统计该文件夹的内容总体积,之后将结果显示在该界面上供用户查看。
【已完成】在账户配置中新增“超级权限”设置:具备该权限的账户将无视权限和分组设定,可执行一切操作并可访问任何文件夹(包括“仅创建者”文件夹)。
注:该功能旨在方便系统管理员更为方便快捷的对整个系统进行全权管理。
【待实现】新增扩展存储区导出功能:当用户删除某一扩展存储区时,可以选择将该存储区内的文件全部导出至指定位置,便于对其进行归档。
【已完成】完善移动“m”权限的安全性当仅有“m”权限时用户可执行“复制”操作若同时具备删除“d”权限才可以进行“剪切”操作。
注:这是为了防止使用者先将某个文件从一个原本不具备删除权限的文件夹内移动的一个具备删除权限的文件夹内再将其删除的恶意操作。
【已完成】新增文件夹体积计算功能:当访问者打开文件夹的“详细信息...”模态框时,系统将实时统计该文件夹的内容总体积,之后将结果显示在该界面上供用户查看。
【已完成】新增“文件”功能的导入账户设置在账户配置文件中可通过“import.account=?”设置项来为“文件”功能中的导入操作指定“创建者”。
【已完成】进一步完善了移动文件时的提示信息:当用户不具备创建文件夹权限并移动文件夹时,会显示未授权提示。
【已完成】进一步优化了图形界面下的“文件”功能:现在可以通过点击表头对文件列表进行排序了。
【已完成】进一步优化了图形界面下的“文件”功能:现在双击文件列表中的文件可以快速预览它了。
【已完成】进一步优化了命令模式下的“文件”功能现在可以通过“ls -l”显示所有项目的详细信息了。
【已完成】进一步优化了在线解码功能当没有找到与操作系统匹配的ffmpeg解码引擎时在线解码功能将自动禁用。
【已完成】修复了几处在执行文件导入导出操作时可能导致死锁的问题。
【已完成】新增“文件”功能的导入账户设置在账户配置文件中可通过“import.account=?”设置项来为“文件”功能中的导入操作指定“创建者”。
【已完成】进一步完善了移动文件时的提示信息:当用户不具备创建文件夹权限并移动文件夹时,会显示未授权提示。
【已完成】进一步完善了断点续传功能。

View File

@ -99,13 +99,9 @@ public class KiftdFFMPEGLocator implements ProcessLocator {
// 临时文件中是否已经拷贝好了ffmpeg可执行文件了
ffmpegFile = new File(dirFolder, "ffmpeg-" + arch + "-" + Version.getVersion() + suffix);
if (!ffmpegFile.exists()) {
// 没有那将自带的对应操作系统的ffmpeg文件拷贝到临时目录中如果没有对应自带的ffmpeg那么会抛出异常
// 如果抛出异常那么直接结束构造
try {
copyFile("ffmpeg-" + arch + suffix, ffmpegFile);
} catch (NullPointerException e) {
// 没有那将自带的对应操作系统的ffmpeg文件拷贝到临时目录中如果没有对应自带的ffmpeg那么直接结束构造
if (!copyFile("ffmpeg-" + arch + suffix, ffmpegFile)) {
Printer.instance.print("警告未能找到适合此操作系统的ffmpeg引擎可执行文件视频播放的在线解码功能将不可用。");
lu.writeException(e);
enableFFmpeg = false;
return null;
}
@ -132,30 +128,28 @@ public class KiftdFFMPEGLocator implements ProcessLocator {
}
// 把文件从自带的jar包中拷贝出来移入指定文件夹
private void copyFile(String path, File dest) {
private boolean copyFile(String path, File dest) {
String resourceName = "nativebin/" + path;
try {
InputStream is = getClass().getResourceAsStream(resourceName);
if (is == null) {
resourceName = "ws/schild/jave/nativebin/" + path;
is = ClassLoader.getSystemResourceAsStream(resourceName);
}
if (is == null) {
resourceName = "ws/schild/jave/nativebin/" + path;
ClassLoader classloader = Thread.currentThread().getContextClassLoader();
is = classloader.getResourceAsStream(resourceName);
}
if (is != null) {
copy(is, dest.getAbsolutePath());
try {
is.close();
} catch (IOException ioex) {
lu.writeException(ioex);
}
}
} catch (NullPointerException ex) {
lu.writeException(ex);
InputStream is = getClass().getResourceAsStream(resourceName);
if (is == null) {
resourceName = "ws/schild/jave/nativebin/" + path;
is = ClassLoader.getSystemResourceAsStream(resourceName);
}
if (is == null) {
resourceName = "ws/schild/jave/nativebin/" + path;
ClassLoader classloader = Thread.currentThread().getContextClassLoader();
is = classloader.getResourceAsStream(resourceName);
}
if (is != null) {
boolean copyResult = copy(is, dest.getAbsolutePath());
try {
is.close();
return copyResult;
} catch (IOException ioex) {
lu.writeException(ioex);
}
}
return false;
}
// 以文件的形式把流存入指定文件夹内

View File

@ -1,5 +1,5 @@
#Generated by Maven Integration for Eclipse
#Thu Jan 11 21:24:52 CST 2024
#Sat Jan 13 17:31:21 CST 2024
m2e.projectLocation=/Users/kohgylw/Programs/java_workspace/kiftd
m2e.projectName=kiftd
groupId=kohgylw