minio 文件预览_GitHub - dushitaoyuan/little-file: 小型文件管理http服务,为原有的文件系统提供可靠的http服务 目前支持:fatdfs,ftp,sftp,...

little-file

项目介绍

小型文件管理http服务,为原有的文件系统提供可靠的http服务目前支持:fatdfs,ftp,sftp,minio,local(本地文件)图片在线预览,支持gzip压缩简单封装了,fastdfs,sftp,ftp基本操作(上传,下载)

简单安全控制 hmac

可在线预览pdf,图片等文件,后续可支持文件缩放,剪裁等功能

littlefile-core

基本实现 fdfs,sftp,ftp,minio,aliyunoss 基础功能 (上传,下载,删除,断点下载,实时图片预览)

xxx-sample

littlefile-core 的文件服务访问(下载,访问,对接已有文件系统)功能例子

littlefile-combine

统一文件服务接口,重新划分文件协议,结合mysql实现文件存储

littlefile-fdfs-http

fastdfs http 服务

littlefile-fdfs-http-server 服务端

littlefile-fdfs-http-client client端

基于 fastdfs 5.11 (也可升级最新6.x版,基本无需改动)

理论上 依托fastdfs 封装http,可支持任何客户端

(fastdfs-http文档)[littlefile-fdfs-http/littlefile-fdfs-http.md]

fastdfs

fastdfs (最全文档解析) [fastdfs/fastdfs.md]

fastdfs (协议解析) [fastdfs/fastdfs-protocol.md]

软件架构

客户端文件请求(携带参数:文件服务器路径,token,访问类型(查看或者下载))->->web服务,拉取远端文件到Web服务器所在本地磁盘->返回文件流信息(可选gzip压缩)

配置详解

#文件服务器类型 FTP,FDFS,SFTP,LOCAL(本地模式);

littlefile.server_type=FDFS

#文件缓存时间:s秒,min分钟,h小时,d天 0 不清理 ,可选

littlefile.file_cache_time=30min

#文件清理线程数,可选

littlefile.file_clean_thread_num=3

#是否对文件进行gzip压缩

littlefile.file.gzip=false

#webapp:xx abs:xx webapp表示为web环境下目录 abs表示绝对路径

#如webapp:file或 abs:l:/tmp

littlefile.file_cache_dir=webapp:file

#安全控制,可选配置 支持 md4,sha1,sha256,公开访问时,不需要配置

littlefile.token.hmac=md5

#hmac 秘钥

littlefile.token.password=md5

#文件访问token过期时间

littlefile.token.expireMin=30

#文件处理接口url 必填

littlefile.fileHandle.url_format=http://localhost:8080/littlefile-web/down

#fdfs配置地址 classpath:xxx或者绝对路径

littlefile.fdfs.fdfs_conf=classpath:fdfs.properties

#sftp配置

littlefile.sftp.host=192.168.91.201

littlefile.sftp.port=22

littlefile.sftp.username=root

littlefile.sftp.password=123

#工作目录

littlefile.sftp.workdir=/opt/sftp/

#非账户连接配置,可选

# classpath:xxx或者绝对路径

littlefile.sftp.private_key=

littlefile.sftp.private_key_password=

#ftp配置

littlefile.ftp.host=127.0.0.1

littlefile.ftp.port=21

littlefile.ftp.username=ftp

littlefile.ftp.password=ftp

#工作目录

littlefile.ftp.workdir=/

#ftp ssl配置,可选

# classpath:xxx或者绝对路径

littlefile.ftp.key_manager_path=

littlefile.ftp.key_manager_password=

# classpath:xxx或者绝对路径

littlefile.ftp.trust_manager_path=

littlefile.ftp.trust_manager_password=

#阿里云oss配置

littlefile.alioss.bucketName=

littlefile.alioss.AccessKeyID=

littlefile.alioss.AccessKeySecret=

littlefile.alioss.endpoint=

#minio配置

littlefile.minio.bucketName=

littlefile.minio.accessKey=

littlefile.minio.secretKey=

littlefile.minio.endpoint=

littlefile.minio.region=

littlefile.minio.connectTimeout=

littlefile.minio.maxIdleConnections=

littlefile.minio.keepAliveDuration=

#本地模式 英文,分割,支持多个本地文件目录

littlefile.local.dirs=L:/tmp2,L:/tmp3

传统项目使用:在web.xml中配置默认的servlet

downLoadServlet

com.taoyuanx.littlefile.web.DownLoadServlet

liitle_conf

classpath:littlefile.properties

downLoadServlet

/down

其他环境

实例化 com.taoyuanx.littlefile.web.FileHandler 类,或扩展该类暴露http服务

安全控制

项目中实现了简单的安全控制,其他外部系统可引入littlefile-core包构造访问路径即可

安全控制实现参见:com.taoyuanx.littlefile.web.security.HmacTokenManager,用户亦可自行实现

使用

部分参数解释如上,也可参见示例项目:littlefile-xxx-samples

1.上传文件

参见 LittleFile系列实现

2.创建授权url(com.taoyuanx.littlefile.web.FileHandler.signFileUrl),

未开启安全控制时,创建公开url(com.taoyuanx.littlefile.web.FileHandler.createPublicUrl)

参见 FileAuthedUrlCreate

3.访问

参见 com.taoyuanx.littlefile.sample.file.FileController

4.使用建议

如系统中存在多种文件系统,建议存储文件路径时,加以区分:

如: ftp://,oss://,fastdfs://等,后端拉取文件时,根据不同文件系统拉取

fastdfs完全解读

todo

http 文件服务:集合多种存储服务,包含简单功能:上传,下载,删除(已完成)

fastdfs 专用http服务:封装fastdfs client 为http 方便非java语言使用(已完成)

仓库地址

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值