生产环境结果应该如下:
本文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-client-java-1.27-SNAPSHOT.zip"中,包含了两个关键文件:"fastdfs-client-java-1.27-SNAPSHOT.jar"和"fastdfs-client-java-1.27-SNAPSHOT.pom"。 1. **fastdfs-client-java-1.27-...
标题中的"fastdfs-client-java-master.zip"是一个包含FastDFS客户端Java实现的压缩文件,这个库主要用来帮助Java应用程序与FastDFS分布式文件系统进行交互。FastDFS是一个开源的高性能、轻量级的分布式文件系统,...
配置Nginx时,需要添加FastDFS模块,如mod_fastdfs,这样Nginx就能识别FastDFS的文件ID,并将请求转发到正确的Storage服务器。 动态缩略图的实现通常涉及到图像处理库,如OpenCV或ImageMagick。在FastDFS中,我们...
在使用`fastdfs-client-java`之前,首先需要确保FastDFS服务器已经正确安装并运行。接着,将下载的jar包引入项目中,通过Maven或Gradle配置依赖,或者直接将jar包添加到项目的类路径中。然后,配置FastDFS服务器的...
安装和配置方法与FastDFS的Nginx模块类似。 通过阅读提供的"fastdfs单节点安装手册.pdf"和"FastDFS介绍(官方文档).ppt",可以获取更详细的操作指南。同时,01_FastDFS配置手册tracker.conf.txt和02_FastDFS配置...
3. 配置Java客户端:将FastDFS的配置信息(如tracker服务器地址、group信息等)写入Java项目的配置文件中,通常为`fastdfs_client.conf`。 三、FastDFS Java客户端的核心API 1. 文件上传:使用`TrackerClient`和`...
在给定的压缩包中,你将找到所有必要的组件和文档,包括FastDFS和Nginx的安装文件、FastDFS的插件、FastDFS-client的Java源码和jar包,以及详细的安装文档。这将帮助你快速搭建起一个工作正常的FastDFS+Nginx文件...
**FastDFS简介** ...安装配置FastDFS需要对Linux、Nginx有一定了解,并熟悉FastDFS提供的配置文件和客户端库。在Java开发环境中,使用FastDFS客户端进行文件操作,能够方便地集成到现有的业务流程中。
1. **添加依赖**:在Java项目中引入FastDFS的客户端库,如fastdfs-client-java。 2. **连接Tracker**:创建TrackerClient实例,通过它连接到Tracker服务器。 3. **文件上传**:使用StorageClient上传文件,包括...
fastdfs-nginx-module-master分布式文件系统 整套资源,不会有版本冲突,其他文件看我的其他下载( fastdfs-5.11,libfastcommon-master,nginx,fastdfs-client-java)
fastdfs-nginx-module-master分布式文件系统 整套资源,不会有版本冲突,其他文件看我的其他下载( fastdfs-5.11,libfastcommon-master,nginx,fastdfs-client-java)
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; 分布式文件系统...
Java操作FastDFS文件上传是Java开发中常见的一项任务,下面我们将详细探讨如何使用`fastdfs-client-java`库实现这一功能。 首先,我们需要在项目中引入`fastdfs-client-java`依赖。通常,可以通过Maven或Gradle将该...
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在Centos7上的安装及配置,包括libfastcommon、FastDFS本身以及fastdfs-nginx-module和Nginx等必要组件的安装与配置。通过以上步骤,您可以构建起一个稳定且高效的数据存储与分发系统。
4. 安装Java客户端:解压fastdfs-client-java-master.zip,将其添加到Java项目中作为依赖,用于Java程序与FastDFS的交互。 5. 配置与启动:根据服务器环境配置相关参数,如IP、端口等,然后启动Tracker和Storage服务...
通过以上步骤,可以在 Windows 环境下成功部署并测试 Mysql、Redis、Zookeeper、Nginx、FastDFS 这些常用的技术组件。这些组件对于构建分布式系统至关重要,能够帮助开发者实现高性能、高可用的应用程序。
在Linux环境下,首先需要安装FastDFS的基础依赖,包括libevent、libfastdfs、nginx和fastdfs-nginx-module。在Ubuntu系统中,可以通过apt-get命令进行安装: 1. 安装基础工具: ``` sudo apt-get update sudo apt-...
**FastDFS简介** FastDFS是一个开源的高性能、轻量级的分布式文件系统,它对文件进行管理,包括文件存储、...了解并熟练掌握FastDFS的安装、配置、使用以及与Java的集成,对于提升系统的稳定性和扩展性具有重要意义。