fastDFS的安装与配置(虚拟机测试)

目录
  • fastDFS安装与配置
    • 导入虚拟机
    • fastDFS安装
    • Tracker配置
    • Storage配置
  • 文件上传下载测试
    • 搭建环境
    • 文件上传
    • 文件查询
    • 文件下载
一、fastDFS安装与配置
1.1 导入虚拟机(有虚拟机镜像的可以不看这一步)
  • 这里使用的时Vmware虚拟机
  • 这里使用的镜像是Centos7,导入光驱等的操作请自行操作。
  • 安装的jdk 1.8
  • 安装pcre,openssl
1.2 fastDFS安装
  • tracker和storage使用相同的安装包,
  • fastDFS的下载地址在:下载地址
  • 这里使用 FastDFS_v5.05.tar.gz
  • 安装 FastDFS 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,需要安装 gcc:yum install gcc-c++
1.2.1 安装 libevent
  • FastDFS 依赖 libevent 库,需要安装:
  • yum -y install libevent
1.2.2 安装 libfastcommon
  • libfastcommon 是 FastDFS 官方提供的,libfastcommon 包含了 FastDFS 运行所需要的一些基础库。
1 将 libfastcommonV1.0.7.tar.gz 拷贝至/usr/local/2 cd /usr/local
3 tar -zxvf libfastcommonV1.0.7.tar.gz
4 cd libfastcommon-1.0.7
5 ./make.sh
6 ./make.sh install

注意:libfastcommon 安装好后会自动将库文件拷贝至/usr/lib64 下,由于 FastDFS 程序引用 usr/lib 目录所以需要将/usr/lib64 下的库文件拷贝至/usr/lib 下。

1.2.2 tracker 编译安装
  • 将 FastDFS_v5.05.tar.gz 拷贝至/usr/local/下
  • tar -zxvf FastDFS_v5.05.tar.gz
  • cd FastDFS
  • ./make.sh 编译
  • ./make.sh install 安装
  • 安装成功将安装目录下的 conf 下的文件拷贝到/etc/fdfs/下。
1.3 Tracker配置
  • 安装成功后进入/etc/fdfs 目录:
  • 拷贝一份新的 tracker 配置文件:
    cp tracker.conf.sample tracker.conf
  • 修改 tracker.conf
    vi tracker.conf
  • base_path=/home/yuqing/fastdfs
    改为:base_path=/home/fastdfs
  • 配置 http 端口:http.server_port=80
  • 启动 /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
1.4 Storage配置
  • 将 FastDFS_v5.05.tar.gz 拷贝至/usr/local/下
  • tar -zxvf FastDFS_v5.05.tar.gz
  • cd FastDFS
  • ./make.sh 编译
  • ./make.sh install 安装
  • 安装成功将安装目录下的 conf 下的文件拷贝到/etc/fdfs/下。
  • /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
  • 安装成功后进入/etc/fdfs 目录
  • 拷贝一份新的 storage 配置文件:
    cp storage.conf.sample storage.conf
  • 修改 storage.conf vi storage.conf group_name=group1
    base_path=/home/yuqing/FastDFS 改为:base_path=/home/ fastdfs store_path0=/home/yuqing/FastDFS
    改为:store_path0=/home/fastdfs/fdfs_storage
  • #如果有多个挂载磁盘则定义多个 store_path,如下
    #store_path1=…#store_path2=…
    tracker_server=192.168.101.3:22122 #配置 tracker 服务器:IP
    = #如果有多个则配置多个 tracker
    tracker_server=192.168.101.4:22122
  • #配置 http 端口
    http.server_port=80
  • 启动 /usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
二、文件上传下载测试
2.1 搭建环境
  • 这里用java的spring-boot做个简单测测试
    pom.xml文件
<dependencies>
<dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-web</artifactId>
 </dependency>
<!--        https://mvnrepository.com/artifact/net.oschina.zcx7878/fastdfs‐client‐java-->
 
 <dependency>
     <groupId>net.oschina.zcx7878</groupId>
     <artifactId>fastdfs-client-java</artifactId>
     <version>1.27.0.0</version>
 </dependency>

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>1.3.2</version>
</dependency>
</dependencies>

配置文件
在classpath:config下创建fastdfs-client.properties文件

fastdfs.connect_timeout_in_seconds = 5 #http连接超时时间 fastdfs.network_timeout_in_seconds = 30 #tracker与storage网络通信超时时间 fastdfs.charset = UTF‐8 #字符编码 fastdfs.tracker_servers = 192.168.28.120:22122 #tracker服务器地址,多个地址中间用英文逗号分隔
2.2 文件上传
	@Test
    public void testUpload() {
    try {
        ClientGlobal.initByProperties("config/fastdfs‐client.properties");
        System.out.println("network_timeout=" + ClientGlobal.g_network_timeout + "ms");
        System.out.println("charset=" + ClientGlobal.g_charset);
        //创建客户端 T
        TrackerClient tc = new TrackerClient();
        //连接tracker
        TrackerServer ts = tc.getConnection();
        if (ts == null) {
            System.out.println("getConnection return null");
            return;
        }
        //获取一个storage server
        StorageServer ss = tc.getStoreStorage(ts);
        if (ss == null) { System.out.println("getStoreStorage return null"); }
        //创建一个storage存储客户端
        StorageClient1 sc1 = new StorageClient1(ts, ss);
        NameValuePair[] meta_list = null; //new NameValuePair[0];
        String item = "C:\\Users\\admin\\Desktop\\1.png";
          String fileid;
          fileid = sc1.upload_file1(item, "png", meta_list);
            System.out.println("Upload local file " + item + " ok, fileid=" + fileid);
    }catch (Exception ex) {
        ex.printStackTrace();
    }
2.3文件查询
/查询文件
    @Test
    public void testQueryFile() throws IOException, MyException {
        ClientGlobal.initByProperties("config/fastdfs‐client.properties");
        TrackerClient tracker = new TrackerClient();
        TrackerServer trackerServer = tracker.getConnection();
        StorageServer storageServer = null;
        StorageClient storageClient = new StorageClient(trackerServer, storageServer);
    }
2.4文件下载
@Test 
public void testDownloadFile() throws IOException, MyException { 
        ClientGlobal.initByProperties("config/fastdfs‐client.properties"); 
        TrackerClient tracker = new TrackerClient(); 
        TrackerServer trackerServer = tracker.getConnection(); 
        StorageServer storageServer = null; 
        StorageClient1 storageClient1 = new StorageClient1(trackerServer, storageServer); 
        byte[] result = storageClient1.download_file1("group1/M00/00/01/wKhlQFrKBSOAW5AWAALcAg10vf4862.png"); 
        File file = new File("d:/1.png"); 
        FileOutputStream fileOutputStream = new FileOutputStream(file); 
        fileOutputStream.write(result); fileOutputStream.close(); 
}
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值