运行平台:CentOS
需求:类似这样
/opt/virtual.file
指向:/opt/1.file
/opt/2.file
/opt/3.file
首先,我知道合并的命令,但是这样会新建一个文件,并占用空间
我希望的是访问 /opt/virtual.file
,相当于系统动态把这三个文件合并成一个当成一个来访问
这个需求并不是使用nginx_http_concat中合并js/css的请求
因为上传文件的时候为了保证稳定性,按照 5M/块 的情况下分隔上传,虽然也可以使用程序合并这些块,但是有没软件可以让系统做虚拟文件,指向到这些分块,这样就可以不用合并了
回复内容:
运行平台:CentOS
需求:类似这样
/opt/virtual.file
指向:/opt/1.file
/opt/2.file
/opt/3.file
首先,我知道合并的命令,但是这样会新建一个文件,并占用空间
我希望的是访问 /opt/virtual.file
,相当于系统动态把这三个文件合并成一个当成一个来访问
这个需求并不是使用nginx_http_concat中合并js/css的请求
因为上传文件的时候为了保证稳定性,按照 5M/块 的情况下分隔上传,虽然也可以使用程序合并这些块,但是有没软件可以让系统做虚拟文件,指向到这些分块,这样就可以不用合并了
这个必须使用fuse来实现,以及大神写的:https://github.com/schlaile/c…
-
安装编译concatfs
<code>yum install fuse fuse-develgit clone https://github.com/schlaile/concatfs.gitcd concatfs/srcgcc -Wall concatfs.c `pkg-config fuse --cflags --libs` -o concatfscp ./concatfs /bin</code>
-
使用挂载的方式启动一个目录
原目录:/opt/www/website/
里面包含文件index.html
test.html
创建一个待挂载的目录mkdir /opt/www/website_mnt
执行concatfs /opt/www/website/ /opt/www/website_mnt
没报错就已经在后台运行 -
创建一个特殊的文件名 包含
-concat-
只要包含 -concat- 将会被concatfs特殊解析
<code>vim /opt/www/website/1-concat-.txt</code>
内容
<code>index.htmltest.html</code>
注意结尾列也需要有回车符 LF,不然最后那个文件不会加载
-
现在访问
/opt/www/website_mnt/1-concat-.txt
便会返回这两个文件合并之后的数据
相当于这两个文件动态合并了,其实在物理上并没有合并
注意是website_mnt/1-concat-.txt
目录
访问原目录的website/1-concat-.txt
仍然是原文件本文来源gaodai.ma#com搞##代!^码@网*搞gaodaima代码
-
PS: 并没有测试写入
/opt/www/website_mnt/1-concat-.txt
的情况