FastDFS实现简单的文件的上传下载

本文详细介绍了如何使用FastDFS实现文件的上传和下载。主要内容包括理解FastDFS的CLientGlobal、TrackerServer、TrackerClient、StorageServer和StorageClient等核心类以及相关API的使用。在实践中,创建项目、配置FastDFS依赖、编写上传文件对象类和工具类,并在Controller层实现文件上传功能。同时,提供了前端HTML页面模板以展示上传状态。
摘要由CSDN通过智能技术生成

首先,我们先了解一些FastDFS的常用类和一些API
1、CLientGlobal:用于加载配置文件的公共客户端工具
方法:
(1)init(String conf_filename):根据配置文件路径及命名,加载配置文件并设置客户端公共参数,配置文件类型为conf文件。可以使用绝对路径或相对路径加载。
(2)initByProperties(Properties pros):根据Properties对象设置客户端公共参数
2、TrackerServer:跟踪服务器类型。此类型的对象是通过跟踪客户端对象构建的。实质上就是一个与FastDFS TrackerServer的链接对象。
构建对象的方式:trackerClient.getTrackerServer();
3、TrackerClient:跟踪器客户端类型。创建此类型对象时,需传递跟踪组(即跟踪器的访问地址信息)。如果是无参构造方法默认使用ClientGlobal.g_tracker_group常量作为跟踪器组来构造对象。创建对象的方式为:

new TrackerClient()

new TrackerClient(ClientGlobal.g_tracker_group)

4、StorageServer:存储服务类型。此类型的对象是通过跟踪器客户端对象构建的。实质上就是一个与FastDFS Storage Server 的链接对象。是代码中与 StroageServer 链接的工具。获取的具体存储服务链接,是由 Tracker Server 分配的,所以构建
存储服务对象时,需要依赖跟踪器服务对象。
构建对象的方式为:trackerClient.getStoreStorage(trackerServer)
5、StorageClient:存储客户端类型。此类型的对象是通过构造方法创建的。创建时,需传递跟踪服务对象和存储服务对象。此对象实质上就是一个访问 FastDFS Storage Server 的客户端对象,用于实现文件的读写操作。
创建对象的方式为:new StorageClient(trackerServer,storageServer)
常用的方法有:
(1)upload_file(String local_filename, String file_ext_name, NameValuePair[] meta_list); 上传文件的方法
参数 local_filename 为要上传的本地文件路径及文件名,可使用绝对路径或相对路径;
参数file_ext_name为上传文件的扩展名,如果传递null,则自动解析文件扩展名;
参数 meta_list 是用于设置上传文件的源数据的,如上传用户、上传描述等。
(2)download_file(String group_name, String remote_file_name); 下载文件的方法。
参数group_name为组名/卷名,就是 Storage Server中/etc/fdfs/storage.conf 配置文件中配置的group_name 参数值,也是要下载的文件所在组/卷的命名;
参数 remote_file_name 为要下载的文件的路径及文件名。
(3)delete_file(String group_name, String remote_file_name); 删除文件的方法,
参数group_name为组名/卷名,就是 Storage Server中/etc/fdfs/storage.conf 配置文件中配置的group_name 参数值,也是要下载的文件所在组/卷的命名;
参数 remote_file_name 为要要删除的文件的路径及文件名。

功能的实现代码
创建一个项目
1、添加FastDFS要使用的依赖

<dependency>
   <groupId>org.csource</groupId>
   <artifactId>fastdfs-client-java</artifactId>
   <version>1.29-SNAPSHOT</version>
</dependency>

2、在resource目录下创建xxx.conf(后缀名规定为.conf)文件,添加如下配置

#连接超时
connect_timeout = 2
#网络超时
network_time = 30
#编码格式
charset = utf-8
#tracker端口号
http.tracker_http_port = 8080
#防盗链功能
http.anti_steal_token = no
#秘钥
http.secret_key = FastDFS12345678
#tracker的ip地址:端口号(指向你自己的IP地址和端口,可以为多个)
tracker_server = 
#连接池的配置
connection_pool.enabled = true
connection_pool.max_count_per_entry = 500
connection_pool.max_idle_time = 3600
connection_pool.max_wait_time_in_ms = 1000

3、添加一个文件上传对象类

public class FastDFSFile {
   
    private String name; //文件名
    private byte[] content;	//详细描述
    private String ext;	//后缀名
    private String md5;	//文件md5编码
    private String author;	//作者
    private String height;	//高度
    
    public String getName() {
   
        return name;
   }
    public void setName(String name) {
   
        this.name = name;
   }
    public byte[] getContent() {
   
        return content;
   }
    public void setContent(byte[] content) {
   
        this.content = content;
   }
    public String getExt() {
   
        return ext;
   }
    public void setExt(String ext) {
   
        this.ext = ext;
   }
    public String getMd5() {
   
        return md5;
   }
    public void setMd5(String md5) {
   
        this.md5 = md5;
   }
    public String getAuthor() {
   
        return author;
   }
    public void setAuthor(String author) {
   
        this.author = author;
   }
    public String getHeight() {
   
        return height;
   }
   public void setHeight<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值