elfinder - 复制硬链接

时间:2016-12-08 23:08:59

标签: nginx file-manager elfinder

我们移动了很多大文件,这项工作完美无缺,因为这是在一个实例中完成而不复制文件。 (只是移动指针)

但有时我们需要从文件系统中的多个位置访问同一个文件,今天我们复制文件但是这需要很长时间并且存储消耗,这是预期的,因为文件被复制到磁盘上的另一个位置。所以我们不能抱怨这个:)

但是在我们的工作流程中,我们实际上不必拥有多个文件,指向同一文件的多个指针就足够了。因此,硬链接模型是我们的完美选择。如果可以更改elfinder中复制功能的行为,这将非常有用,有谁知道是否可行。 ? :)

1 个答案:

答案 0 :(得分:0)

通过扩展elFinderVolumeLocalFileSystem类可以实现。

class elFinderVolumeMyLocalFileSystem extends elFinderVolumeLocalFileSystem
{
    protected function _copy($source, $targetDir, $name) {
        $target = $this->_joinPath($targetDir, $name);
        if (! $ret = link($source, $target)) {
            return parent::_copy($source, $targetDir, $name);
        }
        return $ret;
    }
}

$opts = array(
    'locale' => '',
    'roots'  => array(
        array(
            'driver' => 'MyLocalFileSystem',
            'path'   => '/path/to/files/',
            'URL'    => 'http://localhost/to/files/'
        )
    )
);

// run elFinder
$connector = new elFinderConnector(new elFinder($opts));
$connector->run();