极简WEB文件管理工具(群晖)——TinyManager

最近使用Logseq记录笔记,需要插入视频媒体做,视频笔记。但是Logseq只支持直链进行访问插入

我已经将文件全部转存到了群晖中,之前一直使用的是onedrive直链访问。但是经常速度感人,因此需要一款可以让群晖视频等文件直链的软件,,最终借助 Tiny FileManager,简洁高效的实现了我的需求。

安装TinyManager

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

配置

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

一般建议将 tinyfilemanager.php文件修改为index.php下次直接用域名即可访问就不需要手动输入php文件地址

配置密码

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

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

 

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

修改语言

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

20200829142833

 

配置管理根目录

 

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

 

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

 

修改文件夹权限

 

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

 

20200829150236

 

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

修改源码加以完善

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

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

修改文件类型对应的图标

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

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

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

删除没用的部分

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

Line 1947 - 删除对文件夹的复制
<!--<a title="<?php echo lng('CopyTo')?>..." href="?p=&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) ?>&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) ?>&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" οnclick="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" οnclick="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" οnclick="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" οnclick="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" οnclick="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" οnclick="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>

修复直链问题

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

// 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>

最终的精简效果

如果觉得麻烦其实上面的步骤都可以不做也可以正常使用

20200829144337

设置群晖

设置目录权限

设置目录权限,让任何人都可以访问

5e5e311b095245c7590e16ff0e047132

开启群晖shh

勾选群晖shh登录

开启后即可用admin登录群晖

群晖root权限

sudo -i

软链接群

ln -s 源文件 目标文件
ln -s /bin/less /usr/local/bin/less

按照上面语法设置群晖软连接

最终效果

建立软连接后,我们可以通过这个链接访问群晖的文件夹,通过http的形式远程访问调用链接即可

相关推荐