`
m635674608
  • 浏览: 4966619 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

FastDFS、Nginx安装、配置、测试(java client)

 
阅读更多

生产环境结果应该如下:

 

本文tracker、storage都在一台机器上!本机既是tracker,又是storage,仅用于测试!

 

一、需要下载的

fastdfs-nginx-module_v1.15.tar.gz

nginx-1.4.1.tar.gz

libevent-2.0.21-stable.tar.gz

FastDFS_v4.06.tar.gz

二、安装

1、安装libevent,nginx都是一个套路

tar –xvf xxxxxx.tar.gz

./configure --prefix=xxxxxxx

make && make install

不多说。

2、安装FastDFS

指定下刚才安装的libevent的path

/make.sh C_INCLUDE_PATH=/usr/local/libevent/include LIBRARY_PATH=/usr/local/libevent/lib
/make.shinstall

3、配置FastDFS

PS,FastDFS分为三个Server

Tracker:接受请求,调度请求,路由请求

Storage:文件存放的地方

Client:客户端,发起请求

默认配置文件在/etc/fdfs/,有需要可以修改。

配置项都有注释,仅列一下我修改了的

  • tracker.conf :

base_path=/fdfs

# base_path 附目录说明:

tracker server目录及文件结构:
${base_path}
|__data
|     |__storage_groups.dat:存储分组信息
|     |__storage_servers.dat:存储服务器列表
|__logs
|__trackerd.log:tracker server日志文件

  • storage.conf

base_path=/fdfs

store_path0=/fdfs

tracker_server=192.168.20.160:22122

  • client.conf

base_path=/fdfs

tracker_server=192.168.20.160:22122

http.tracker_server_port=8888(改成nginx的端口)

改完上面的配置文件,已经基本OK了

启动tracker

fdfs_trackerd /etc/fdfs/tracker.conf

启动storage

fdfs_storaged /etc/fdfs/storage.conf

上传文件

fdfs_upload_file /etc/fdfs/http.conf /tmp/f.png

--返回group1/M00/00/00/wKgUoFGwT1WAFqIfAAA-xlb-210799.png

 

下面配置下nginx,让你上传文件可以通过url访问到

1.修改nginx配置文件

location /M00 {
            root /fdfs/data;
            ngx_fastdfs_module;
}

2.fastdfs的nginx的module中的mod_fastdfs.conf,copy到/etc/fdfs下,修改配置

base_path=/tmp

tracker_server=192.168.20.160:22122

store_path0=/fdfs

3.启动nginx,

http://192.168.20.160:8888/M00/00/00/wKgUoFGwT1WAFqIfAAA-xlb-210799.png

可以访问到刚才上传的图片!

这里不需要/group1,如果想在url中加入group1,需要修改fdfs的配置文件和nginx的配置文件!

三、Java client

 

    public String conf_filename = "F:\\workspace\\fastdfs\\src\\fdfs_client.conf";
    public String local_filename = "F:\\workspace\\fastdfs\\src\\fdfs_client.conf";

    @org.junit.Test
    public void testUpload() {

        try {
            ClientGlobal.init(conf_filename);

            TrackerClient tracker = new TrackerClient();
            TrackerServer trackerServer = tracker.getConnection();
            StorageServer storageServer = null;

            StorageClient storageClient = new StorageClient(trackerServer,
                    storageServer);
//            NameValuePair nvp = new NameValuePair("age", "18");
            NameValuePair nvp [] = new NameValuePair[]{
                    new NameValuePair("age", "18"),
                    new NameValuePair("sex", "male")
            };
            String fileIds[] = storageClient.upload_file(local_filename, null,
                    nvp);

            System.out.println(fileIds.length);
            System.out.println("组名:" + fileIds[0]);
            System.out.println("路径: " + fileIds[1]);

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (MyException e) {
            e.printStackTrace();
        }
    }

    @org.junit.Test
    public void testDownload() {

        try {

            ClientGlobal.init(conf_filename);

            TrackerClient tracker = new TrackerClient();
            TrackerServer trackerServer = tracker.getConnection();
            StorageServer storageServer = null;

            StorageClient storageClient = new StorageClient(trackerServer,
                    storageServer);
            byte[] b = storageClient.download_file("group1",
                    "M00/00/00/wKgUoFGwPuSAS-QZAAAA4y5hK3c33.conf");
            System.out.println(b);
            getFile(b, "d:\\", UUID.randomUUID().toString()+".conf");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    @org.junit.Test
    public void testGetFileInfo(){
        try {
            ClientGlobal.init(conf_filename);

            TrackerClient tracker = new TrackerClient();
            TrackerServer trackerServer = tracker.getConnection();
            StorageServer storageServer = null;

            StorageClient storageClient = new StorageClient(trackerServer,
                    storageServer);
            FileInfo fi = storageClient.get_file_info("group1", "M00/00/00/wKgUoFGwPuSAS-QZAAAA4y5hK3c33.conf");
            System.out.println(fi.getSourceIpAddr());
            System.out.println(fi.getFileSize());
            System.out.println(fi.getCreateTimestamp());
            System.out.println(fi.getCrc32());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    @org.junit.Test
    public void testGetFileMate(){
        try {
            ClientGlobal.init(conf_filename);

            TrackerClient tracker = new TrackerClient();
            TrackerServer trackerServer = tracker.getConnection();
            StorageServer storageServer = null;

            StorageClient storageClient = new StorageClient(trackerServer,
                    storageServer);
            NameValuePair nvps [] = storageClient.get_metadata("group1", "M00/00/00/wKgUoFGwRMmASXSNAAAA4y5hK3c11.conf");
            for(NameValuePair nvp : nvps){
                System.out.println(nvp.getName() + ":" + nvp.getValue());
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    @org.junit.Test
    public void testDelete(){
        try {
            ClientGlobal.init(conf_filename);

            TrackerClient tracker = new TrackerClient();
            TrackerServer trackerServer = tracker.getConnection();
            StorageServer storageServer = null;

            StorageClient storageClient = new StorageClient(trackerServer,
                    storageServer);
            int i = storageClient.delete_file("group1", "M00/00/00/wKgUoFGwRMmASXSNAAAA4y5hK3c11.conf");
            System.out.println( i==0 ? "删除成功" : "删除失败:"+i);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

 

http://my.oschina.net/yasenagat/blog/136101

分享到:
评论

相关推荐

    fastdfs+nginx 分布式存储图片,支持动态缩略图

    配置Nginx时,需要添加FastDFS模块,如mod_fastdfs,这样Nginx就能识别FastDFS的文件ID,并将请求转发到正确的Storage服务器。 动态缩略图的实现通常涉及到图像处理库,如OpenCV或ImageMagick。在FastDFS中,我们...

    fastdfs-java客户端代码

    3. 配置Java客户端:将FastDFS的配置信息(如tracker服务器地址、group信息等)写入Java项目的配置文件中,通常为`fastdfs_client.conf`。 三、FastDFS Java客户端的核心API 1. 文件上传:使用`TrackerClient`和`...

    FastDFS集成Nginx以及安装文档

    在给定的压缩包中,你将找到所有必要的组件和文档,包括FastDFS和Nginx的安装文件、FastDFS的插件、FastDFS-client的Java源码和jar包,以及详细的安装文档。这将帮助你快速搭建起一个工作正常的FastDFS+Nginx文件...

    FastDFS的安装,配置与使用(java)

    **FastDFS简介** ...安装配置FastDFS需要对Linux、Nginx有一定了解,并熟悉FastDFS提供的配置文件和客户端库。在Java开发环境中,使用FastDFS客户端进行文件操作,能够方便地集成到现有的业务流程中。

    FastDFS-client-java-master.rar

    fastdfs-nginx-module-master分布式文件系统 整套资源,不会有版本冲突,其他文件看我的其他下载( fastdfs-5.11,libfastcommon-master,nginx,fastdfs-client-java)

    FastDFS-nginx-module-master.rar

    fastdfs-nginx-module-master分布式文件系统 整套资源,不会有版本冲突,其他文件看我的其他下载( fastdfs-5.11,libfastcommon-master,nginx,fastdfs-client-java)

    fastdfs-client-java.rar

    org.csource fastdfs-client-java 1.29 jar包,亲测可用,希望对你有用。

    FastDFS软件及开发文档

    fastdfs_client_java._v1.25.tar.gz; fastdfs_client_v1.20.jar; FastDFS_Java_Doc_v1.20.tar.gz; FastDFS_v5.05.tar.gz; fastdfs-nginx-module_v1.16.tar.gz; libfastcommonV1.0.7.tar.gz; 分布式文件系统...

    高可用之FastDFS集群的安装、配置、使用.docx

    FastDFS集群安装、配置、使用 ...FastDFS 的安装包包括 FastDFS v5.05、libfastcommon-master.zip、fastdfs-nginx-module_v1.16.tar.gz、nginx-1.6.2.tar.gz、fastdfs_client_java._v1.25.tar.gz 等。

    fastdfs-5.11安装合集

    4. 安装Java客户端:解压fastdfs-client-java-master.zip,将其添加到Java项目中作为依赖,用于Java程序与FastDFS的交互。 5. 配置与启动:根据服务器环境配置相关参数,如IP、端口等,然后启动Tracker和Storage服务...

    FastDFS 文件分布式存储linux配置+javaDemo一个

    在Linux环境下,首先需要安装FastDFS的基础依赖,包括libevent、libfastdfs、nginx和fastdfs-nginx-module。在Ubuntu系统中,可以通过apt-get命令进行安装: 1. 安装基础工具: ``` sudo apt-get update sudo apt-...

    fastdfs 安装及使用

    **FastDFS简介** FastDFS是一个开源的高性能、轻量级的分布式文件系统,它对文件进行管理,包括文件存储、...了解并熟练掌握FastDFS的安装、配置、使用以及与Java的集成,对于提升系统的稳定性和扩展性具有重要意义。

    fastdfs linux下安装所需文件及测试代码run TestFastDfs中main方法即可

    其中包含了fastdfs-5.11.zip,fastdfs-nginx-module-master.zip,nginx-1.12.2.tar.gz,tengine-2.2.1.tar.gz,libfastcommon-master.zip,lyyzoo-fastdfs-java-master.zip,FastDFS_v5.05.tar.gz等,在项目中用...

    FastDFS单点安装.

    安装和配置方法与FastDFS的Nginx模块类似。 通过阅读提供的"fastdfs单节点安装手册.pdf"和"FastDFS介绍(官方文档).ppt",可以获取更详细的操作指南。同时,01_FastDFS配置手册tracker.conf.txt和02_FastDFS配置...

    FastDFS、Nginx源码全家桶

    该全家桶包含了余庆老师git上FastDFS、fastdfs-client-java(包含打包好的jar包)、libfastcommon、fastdfs-nginx-module的最新源码,以及目前比较新的Nginx安装包,供整合fastdfs、Nginx使用

    fastdfs单节点安装手册

    6. **fastdfs单节点安装手册.pdf**:这份文档提供了详细的步骤指导,包括环境准备、编译安装、配置文件设置、启动服务以及测试验证等,是单节点安装FastDFS的关键参考资料。 7. **FastDFS介绍(官方文档).ppt**:...

    fastDFS单机版安装教程+安装使用包

    - 使用FastDFS客户端工具`fdfs_test`进行测试,如`/usr/local/bin/fdfs_test /etc/fdfs/client.conf upload sample.txt`。 ### 四、FastDFS客户端集成 1. **下载FastDFS客户端**:通常与FastDFS服务器分开安装,...

    fastDfs安装全套

    6. 安装Nginx及FastDFS模块:`tar zxf fastdfs-nginx-module_v1.16.tar.gz`,然后按照文档指导配置Nginx,并将FastDFS模块编译进Nginx。 7. 配置Nginx:在Nginx的配置文件中添加FastDFS模块的相关设置,指定Tracker...

    搭建FastDFS服务器的所需资源

    9. **测试FastDFS**:使用Java客户端(`fastdfs-client-java`)进行文件上传和下载测试,确保FastDFS服务正常工作。 10. **部署Java客户端**:将`fastdfs-client-java-master`中的jar包加入到Java项目中,配置相关...

    Java操作FastDFS文件上传

    Java操作FastDFS文件上传是Java开发中常见的一项任务,下面我们将详细探讨如何使用`fastdfs-client-java`库实现这一功能。 首先,我们需要在项目中引入`fastdfs-client-java`依赖。通常,可以通过Maven或Gradle将该...

Global site tag (gtag.js) - Google Analytics