在之前《导出七牛云资源到本地》的文章中,我已经将文件全部转存到了群晖中,搭配Nginx已经可以实现直链访问。前几天又把自己电脑上存在的有用的软件包全部上传到了群晖,至此我的软件包文件夹已经有三四百个文件/安装包,除了直链访问,我迫切的需要一款简洁轻量的Web文件管理工具来方便管理这些文件,最终借助 Tiny FileManager,简洁高效的实现了我的需求。

安装TinyManager

该项目已在Github开源,主页地址。安装非常的简单,直接下载最新版Zip包,完成后解压,将整体目录改个名字比如“pan”,然后放入需要管理的文件的上一级,然后使用 WebStation 在该目录起一个Nginx容器+php环境,做完之后即可通过路径访问了。

配置

经过上述安装,不需要配置即可通过 domain:6543/pan/index.php 访问(index可不写,6543需要路由器配置映射)登陆页面。初始的登陆密码是 admin/admin@123user/12345 对应两个级别的用户。

1. 配置密码

直接在群晖打开 index.php 进行编辑(config.php 中的也要对应修改),在27行,找到以下代码:

1
2
3
4
$auth_users = array(
'admin' => '$c9a9qa2v9W18YaYkqI5cEG/ufAviA912PDly1JWwLPgh6324231hqFG', //admin@123
'user' => '$2dasidqwioev9W18YaYkqI5cEG/uf14y1JWwLPgh6pMzzJ42412hqFG' //12345
);

去到该页面,生成你想设置密码的加密字符串,然后回来将其替换到对应位置(箭头右边部分)即可完成密码修改。

2. 修改语言

登陆文件管理Web页面,一定要用admin登陆,右上角下拉点击设置进入该页面选择语言,以及其他设置。

3. 配置管理根目录

config.php 中找到以下代码,/tools 即表示 Manager 初始进入的目录只有 tools,剩下的其他目录不可见。

1
2
3
// Line 53
// use absolute path of directory i.e: '/var/www/folder' or $_SERVER['DOCUMENT_ROOT'].'/folder'
$root_path = $_SERVER['DOCUMENT_ROOT'].'/tools';

4. 修改文件夹权限

此步骤很有必要,如果不改,默认的管理操作会无效,因为php文件没有相应的权限。需要在群晖的文件管理器中直接对 Manager 的工具文件夹进行权限修改(勾选上以下页面的“应用到子文件”,截图没截全):

修改完之后,Web管理页面上的编辑、删除、重命名即可正常使用。

<< 更多精彩尽在『程序萌部落』>>
<< https://www.cxmoe.com >>

修改源码加以完善

由于主体就一个php文件,所以比较容易修改,原页面主要的问题有以下几个:

  • 文件类型对应的图标太丑
  • 文件操作区的按钮重复
  • 修改根目录后文件直链出错
  • 最底部的操作区没实际意义

1. 修改文件类型对应的图标

这里首先引入最新版本的 font-awsome 图标,在index中的适当位置加入(以下代码需要在官网注册后才能得到):

1
<script src="https://kit.fontawesome.com/xxxxxx.js" crossorigin="anonymous"></script>

然后在 2612 行找到 function fm_get_file_icon_class($path) 函数,全部类型对应的图标均在此修改即可。

2. 删除没用的部分

对我来说,文件的下载和直链,两部分完全相同,所以操作区的下载按钮直接删掉(复制其实也没用)。还有页面最底部的操作区也没用,直接删掉,对应到源码主要是以下几部分,直接注释掉即可:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Line 1947 - 删除对文件夹的复制
<!--<a title="<?php echo lng('CopyTo')?>..." href="?p=&amp;copy=<?php echo urlencode(trim(FM_PATH . '/' . $f, '/')) ?>"><i class="fa fa-files-o" aria-hidden="true"></i></a>-->

Line 1949 - 删除对文件夹的直链
<!--<a title="<?php echo lng('DirectLink')?>" href="<?php echo fm_enc(FM_ROOT_URL . '/' . (FM_PATH != '' ? '/' . FM_PATH : '') . '/' . $f) ?>" target="_blank"><i class="fa fa-link" aria-hidden="true"></i></a>
-->

Line 2011 - 删除对文件的复制
<!--<a title="<?php echo lng('CopyTo') ?>..."
href="?p=<?php echo urlencode(FM_PATH) ?>&amp;copy=<?php echo urlencode(trim(FM_PATH . '/' . $f, '/')) ?>"><i class="fa fa-files-o"></i></a>-->

Line 2015 - 删除对文件的下载
<!--<a title="<?php echo lng('Download') ?>" href="?p=<?php echo urlencode(FM_PATH) ?>&amp;dl=<?php echo urlencode($f) ?>"><i class="fa fa-download"></i></a>-->

Line 2054 - 删除页面底部的操作区(注意注释位置)
<div class="col-xs-12 col-sm-9"><!--
<ul class="list-inline footer-action">
<li class="list-inline-item"> <a href="#/select-all" class="btn btn-small btn-outline-primary btn-2" onclick="select_all();return false;"><i class="fa fa-check-square"></i> <?php echo lng('SelectAll') ?> </a></li>
<li class="list-inline-item"><a href="#/unselect-all" class="btn btn-small btn-outline-primary btn-2" onclick="unselect_all();return false;"><i class="fa fa-window-close"></i> <?php echo lng('UnSelectAll') ?> </a></li>
<li class="list-inline-item"><a href="#/invert-all" class="btn btn-small btn-outline-primary btn-2" onclick="invert_all();return false;"><i class="fa fa-th-list"></i> <?php echo lng('InvertSelection') ?> </a></li>
<li class="list-inline-item"><input type="submit" class="hidden" name="delete" id="a-delete" value="Delete" onclick="return confirm('Delete selected files and folders?')">
<a href="javascript:document.getElementById('a-delete').click();" class="btn btn-small btn-outline-primary btn-2"><i class="fa fa-trash"></i> <?php echo lng('Delete') ?> </a></li>
<li class="list-inline-item"><input type="submit" class="hidden" name="zip" id="a-zip" value="zip" onclick="return confirm('Create archive?')">
<a href="javascript:document.getElementById('a-zip').click();" class="btn btn-small btn-outline-primary btn-2"><i class="fa fa-file-archive-o"></i> <?php echo lng('Zip') ?> </a></li>
<li class="list-inline-item"><input type="submit" class="hidden" name="tar" id="a-tar" value="tar" onclick="return confirm('Create archive?')">
<a href="javascript:document.getElementById('a-tar').click();" class="btn btn-small btn-outline-primary btn-2"><i class="fa fa-file-archive-o"></i> <?php echo lng('Tar') ?> </a></li>
<li class="list-inline-item"><input type="submit" class="hidden" name="copy" id="a-copy" value="Copy">
<a href="javascript:document.getElementById('a-copy').click();" class="btn btn-small btn-outline-primary btn-2"><i class="fa fa-files-o"></i> <?php echo lng('Copy') ?> </a></li>
</ul> -->
</div>

3. 修复链接问题

FM_ROOT_URL 后面,将 / 改为 /tools(设置的根目录)即可。

1
2
3
4
5
6
// Line 2014 
<a title="<?php echo lng('DirectLink') ?>"
href="<?php echo fm_enc(FM_ROOT_URL . '/tools' . (FM_PATH != '' ? '/' . FM_PATH : '') . '/' . $f) ?>"
target="_blank">
<i class="fa fa-link"></i>
</a>

fm_enc($file_url)改为 str_replace("6543","6543/tools",fm_enc($file_url))(把根目录加上)即可。

1
2
3
4
5
// Line 1592
<b><a href="<?php echo str_replace("6543","6543/tools",fm_enc($file_url)) ?>" target="_blank"><i class="fa fa-external-link-square"></i> <?php echo lng('Open') ?></a></b>

// Line 1647
echo '<div class="preview-video"><video src="' . str_replace("6543","6543/tools",fm_enc($file_url)) . '" width="640" height="360" controls preload="metadata"></video></div>';

访问 cz5h.com 获取更多精彩内容。


4. 最终的精简效果



😒 留下您对该文章的评价 😄



 评论




全站共计 313.7k 字,自豪地使用 Volantis 主题

博客内容遵循 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 协议