FastDFS:使用java代码实现在FastDFS文件系统的上传、下载、删除的功能

前言:

FastDFS文件系统是一个轻量级分布式文件系统,它是一个软件/软件服务器,这个软件可以用来管理文件。

功能包括:

文件存储、文件同步、文件访问(文件上传、文件下载、文件删除)等,解决了大容量文件存储的问题。特别适合以文件为载体的在线服务,例如:相册网站、文档网站、图片网站、视屏网站…

目的:

使用java代码实现在FastDFS文件系统的上传、下载、删除的功能;

步骤:

该步骤是基于已经安装了FastDFS文件系统基础上写的。
第一步:创建一个普通java工程。
第二步:在资源文件夹下(resources目录下),创建一个文件:fastfds.conf文件(文件名字随便取,但必须是以 .conf 为后缀名的文件)。
第三步:在fastdfs.conf文件中,指定跟踪器的IP+端口。如图:
在这里插入图片描述
第四步:创建一个类:RunMain(类名随便取)。
第五步:在RunMain类中,写上传,下载,删除等代码。
    上传:
          第一步:根据fastdfs.conf配置文件去配置FastDFS环境:

ClientGlobal.init("fastdfs.conf");

          第二步:创建跟踪器客户端对象:

TrackerClient tc = new TrackerClient(); 

          第三步:根据跟踪器客户端对象,获取跟踪服务器对象:

TrackerServer  ts = tc.getConnection();

          第四步:根据跟踪服务器对象,获取存储服务器对象:

StorageServer ss = tc.getStoreStorage(ts);

          第五步:根据存储服务器对象,获取存储客户端对象:

StorageClient sc = new StorageClient(ts, ss);
注意:对文件的上传、下载、删除都是使用存储服务器对象StorageClient 来操作的。

          第六步:调用存储服务器对象的上传方法,将文件上传。

		/*
			上传文件到FastDFS
            参数 1 需要上传的文件在本地磁盘的绝对路径
            如果是web工程,参数1就是:需要上传的文件的字节数组
            参数 2 需要上传的文件的扩展名
            参数 3 需要上传的文件的属性文件 通常不上传
            
            上传成功后返回一个字符串数组,这个数组很重要必须要将数组中的数据持久化保存
            数组中一共有2个元素
            元素1 为文件在FastDFS中的组名
            元素2 为文件在FastDFS中的远程文件名
        */
			String result[]= sc.upload_file("d:/QRCode.jpg","jpg",null);

          第七步:关闭资源。

 sc.close();
 ss.close();
 ts.close();

    下载:
          注意:前面五个步骤以及第七个步骤,和上传是一样的。唯一不同的是:存储服务器对象调用的方法不一样。这里调用的是下载的方法。所以我就直接写第六个步骤。

          第六步: 调用存储服务器对象的下载方法,将文件下载。

普通java工程
	//创建Storage客户端对象,利用这个对象提供的方法来完成文件的上传和下载操作
	sc=new StorageClient(ts,ss);
	//从FastDFS中下载文件到本地磁盘
	//参数 1 文件在FastDFS中的组名
	//参数 2 文件在FastDFS中的远程文件名
	//参数 3 为文件需要保存的本地文件绝对路径
	//返回 值为正数 0表示文件下载成功
	int  result=sc.download_file("group1","M00/00/00/wKiIgF3bUQ6AXb1mAAArwHlYfM4460.jpg","d:/abc.jpg");

web工程:
	//创建Storage客户端对象,利用这个对象提供的方法来完成文件的上传和下载操作
    sc=new StorageClient(ts,ss);
     //从FastDFS中下载文件到本地磁盘
     //参数 1 文件在FastDFS中的组名
     //参数 2 文件在FastDFS中的远程文件名

     //返回 字节数组,这个字节数组就是具体的文件流
    byte[]buffFile=sc.download_file(groupName,remoteFileName);

    删除:
          注意:前面五个步骤以及第七个步骤,和上传是一样的。唯一不同的是:存储服务器对象调用的方法不一样。这里调用的是删除的方法。所以我就直接写第六个步骤。
          第六步: 调用存储服务器对象的删除方法,将文件删除。

普通java工程和web工程是一样的:
	//创建Storage客户端对象,利用这个对象提供的方法来完成文件的上传和下载操作
    sc=new StorageClient(ts,ss);
    //从FastDFS中删除某个文件
    //参数 1 为文件在组的组名
    //参数 2 为文件在FastDFS中的远程文件名
    //返回一个正数 0表示删除成功
    int  result=sc.delete_file("group1","M00/00/00/wKiIgF3bUQ6AXb1mAAArwHlYfM4460.jpg");
发布了4 篇原创文章 · 获赞 0 · 访问量 76

猜你喜欢

转载自blog.csdn.net/weixin_45396356/article/details/103277795
今日推荐