`

fastdfs 学习

 
阅读更多
fastdfs安装
1.编译安装 libevent-1.4.14b-stable
 $./configure
  $ make
  # make install

2.FastDFS v3.05
 
$./make.sh
  #./make.sh install


FastDFS安装使用实战二(配置篇)
1.
cd /etc/fdfs/

   修改tracker.conf文件,修改如下
2.
base_path=/home/liguojun/fastdfs_tracker

3.
http.server_port=8080 -> http.server_port=8090
  (http端口) 
4.
##include http.conf -> #include http.conf 
  (http支持)
5.
reserved_storage_space = 4GB -> reserved_storage_space = 1GB 

6.
port=22122
   (tracker server对storage server供服务的端口)
7.
cd /usr/local/bin/ 

8.
fdfs_trackerd /etc/fdfs/tracker.conf 
 (启动tracker服务器)
9.
cat /home/liguojun/fastdfs_tracker/logs/trackerd.log
查看日志
 
配置及启动Storage Server
1.
cd /etc/fdfs

  修改storage.conf文件,修改如下
2.
base_path=/home/yuqing/fastdfs -> /home/liguojun/fastdfs_storge

#文件的存储位置,在一台storage server上可以指定多个存储位置
#
store_path0=/home/yuqing/fastdfs -> store_path0=/home/liguojun/fastdfs_storge

3.
group_name=group1 

4.
tracker_server=192.168.209.121:22122 -> tracker_server=10.0.2.15:22122 

5.
##include http.conf ->#include http.conf  

6.
 cd /usr/local/bin/ 

7.
fdfs_storaged /etc/fdfs/storage.conf 

8.
cat /home/liguojun/fastdfs_storge/logs/storaged.log
查看日志

FastDFS安装使用实战三(使用篇)
1.
cd /etc/fdfs

  修改client.conf文件,修改如下
2.
base_path=/home/yuqing/fastdfs-> base_path=/home/soar/fastdfs_tracker

3.
tracker_server=192.168.209.121:22122 -> tracker_server=10.0.2.15:22122 

4.
http.tracker_server_port=8080 ->http.tracker_server_port=8090

5.
##include http.conf ->#include http.conf

6.
cd /usr/local/bin/

7.
fdfs_test /etc/fdfs/conf/client.conf upload /home/liguojun/a.txt 


上传:
package com.jd.fastdfs.test;

import java.io.File;
import java.io.FileInputStream;

import org.csource.common.NameValuePair;
import org.csource.fastdfs.ClientGlobal;
import org.csource.fastdfs.ServerInfo;
import org.csource.fastdfs.StorageClient;
import org.csource.fastdfs.StorageServer;
import org.csource.fastdfs.TrackerClient;
import org.csource.fastdfs.TrackerServer;

/**
 * 测试上传
 * @author gary
 *
 */
public class TestUpload {
	public static void main(String[] args) throws Exception{
		String classPath = new File(TestUpload.class.getResource("/").getFile()).getCanonicalPath();
		String configFilePath = classPath + File.separator + "fdfs_client.conf";
		System.out.println("配置文件:" + configFilePath);
		
		ClientGlobal.init(configFilePath);
		
		TrackerClient trackerClient = new TrackerClient();
	    TrackerServer trackerServer = trackerClient.getConnection();

	    StorageServer storageServer = null;
	    StorageClient storageClient = new StorageClient(trackerServer, storageServer);
	    
	    NameValuePair[] meta_list = new NameValuePair[3];
	    meta_list[0] = new NameValuePair("width", "120");
	    meta_list[1] = new NameValuePair("heigth", "120");
	    meta_list[2] = new NameValuePair("author", "gary");
	    
//	    byte[] file_buff = "F:\\pic.jpg".getBytes(ClientGlobal.g_charset);
	    File file = new File("/home/liguojun/图片/image/head.jpg");
	    FileInputStream fis = new FileInputStream(file);
	    byte[] file_buff = null;
	    if(fis != null){
	    	int len = fis.available();
	    	file_buff = new byte[len];
	    	fis.read(file_buff);
	    }
	    System.out.println("file length: " + file_buff.length);
	    
	    String group_name = null;
	    StorageServer[] storageServers = trackerClient.getStoreStorages(trackerServer, group_name);
	    if (storageServers == null) {
	    	System.err.println("get store storage servers fail, error code: " + storageClient.getErrorCode());
	    }else{
	        System.err.println("store storage servers count: " + storageServers.length);
	        for (int k = 0; k < storageServers.length; k++){
	        	System.err.println(k + 1 + ". " + storageServers[k].getInetSocketAddress().getAddress().getHostAddress() + ":" + storageServers[k].getInetSocketAddress().getPort());
	        }
	        System.err.println("");
	    }
	    
	    long startTime = System.currentTimeMillis();
	    String[] results = storageClient.upload_file(file_buff, "jpg", meta_list);
	    System.out.println("upload_file time used: " + (System.currentTimeMillis() - startTime) + " ms");

	    if (results == null){
	        System.err.println("upload file fail, error code: " + storageClient.getErrorCode());
	        return;
	    }
	    
	    group_name = results[0];
	    String remote_filename = results[1];
	    System.err.println("group_name: " + group_name + ", remote_filename: " + remote_filename);
	    System.err.println(storageClient.get_file_info(group_name, remote_filename));

	    ServerInfo[] servers = trackerClient.getFetchStorages(trackerServer, group_name, remote_filename);
	    if (servers == null){
	    	System.err.println("get storage servers fail, error code: " + trackerClient.getErrorCode());
	    } else {
	    	System.err.println("storage servers count: " + servers.length);
	    	for (int k = 0; k < servers.length; k++){
	    		System.err.println(k + 1 + ". " + servers[k].getIpAddr() + ":" + servers[k].getPort());
	    	}
	    	System.err.println("");
	    }
	}
}



下载
package com.jd.fastdfs.test;

import java.io.File;
import java.io.FileOutputStream;

import org.csource.fastdfs.ClientGlobal;
import org.csource.fastdfs.FileInfo;
import org.csource.fastdfs.StorageClient;
import org.csource.fastdfs.StorageServer;
import org.csource.fastdfs.TrackerClient;
import org.csource.fastdfs.TrackerServer;

/**
 * 获取文件信息
 * @author gary
 *
 */
public class TestGet {
	public static void main(String[] args) throws Exception {
		String classPath = new File(TestGet.class.getResource("/").getFile()).getCanonicalPath();
		String configFilePath = classPath + File.separator + "fdfs_client.conf";
		ClientGlobal.init(configFilePath);
		TrackerClient trackerClient = new TrackerClient();
	    TrackerServer trackerServer = trackerClient.getConnection();
	    StorageServer storageServer = null;
	    StorageClient storageClient = new StorageClient(trackerServer, storageServer);
	    
	    String group_name = "group1";
	    String remote_filename = "M00/00/00/Cgr5w09wUsmIsSZvAABvCbsGaKM946.jpg";
	    FileInfo fi = storageClient.get_file_info(group_name, remote_filename);
	    byte[] b = storageClient.download_file(group_name, remote_filename);
	    FileOutputStream   os   =   new   FileOutputStream( "/home/liguojun/filename"); 
	    os.write(b); 
	    os.close();
	    System.out.println("--->"+fi.getCreateTimestamp());
	    String sourceIpAddr = fi.getSourceIpAddr();
	    long size = fi.getFileSize();
	    System.out.println("ip:" + sourceIpAddr + ",size:" + size);
	}
}



删除
package com.jd.fastdfs.test;

import java.io.File;

import org.csource.fastdfs.ClientGlobal;
import org.csource.fastdfs.StorageClient;
import org.csource.fastdfs.StorageServer;
import org.csource.fastdfs.TrackerClient;
import org.csource.fastdfs.TrackerServer;

/**
 * 删除文件
 * @author gary
 *
 */
public class TestDelete {
	public static void main(String[] args) throws Exception {
		String classPath = new File(TestDelete.class.getResource("/").getFile()).getCanonicalPath();
		String configFilePath = classPath + File.separator + "fdfs_client.conf";
		ClientGlobal.init(configFilePath);
		TrackerClient trackerClient = new TrackerClient();
	    TrackerServer trackerServer = trackerClient.getConnection();
	    StorageServer storageServer = null;
	    StorageClient storageClient = new StorageClient(trackerServer, storageServer);
	    
	    String group_name = "group1";
	    String remote_filename = "M00/00/00/Cgr5w09wUMvgS6TXAABvCbsGaKM547.jpg";
	    storageClient.delete_file(group_name, remote_filename);
	    System.out.println("删除成功");
	}
}



分享到:
评论

相关推荐

    FastDFS学习笔记

    FastDFS是一种轻量级的分布式文件系统,专为互联网设计,用于解决大容量存储和负载均衡问题。它具有高可用性、高性能、易部署和使用的特点,尤其在处理大量小文件场景下表现突出。以下是对FastDFS核心概念、工作原理...

    最详细的FastDFS学习资料(源码)

    FastDFS(Fast Distributed File System)是一个开源的轻量级分布式文件系统,它是以C语言实现的,主要用于存储大规模文件的分布式存储系统。FastDFS 的设计目标是高性能、高可靠性和易扩展。 FastDFS 的核心组件...

    FastDFS资料.doc

    fastdfs安装的指南,有需要的拿去,

    FastDFSClient C#源码

    通过学习和理解FastDFSClient C#源码,开发者不仅可以深入理解FastDFS的工作原理,还能掌握如何在.NET环境中高效地使用分布式文件系统,为大型网站、企业应用等提供稳定可靠的文件存储解决方案。同时,源码分析有助...

    fastdfs最新版,FastDFS分布式文件系统

    标签"fastdfs最新版"表明这个压缩包可能包含了FastDFS的最新源代码,这为开发者提供了深入学习和定制系统的机会。通过源码,我们可以了解其内部实现机制,进行二次开发或者针对特定需求进行优化。 压缩包内的"说明....

    fastDFS断点续传实例

    **FastDFS断点续传实例详解** FastDFS是一款开源的高性能、轻量级的分布式文件系统,主要用于解决海量数据存储和负载均衡的问题。在实际应用中,文件上传和...同时,这也是一个学习FastDFS和分布式文件系统的好材料。

    linux_安装fastdfs_学习资料_study-fastdfs.zip

    linux_安装fastdfs_学习资料_study-fastdfs

    Java操作FastDFS示例代码

    Java操作FastDFS是一种常见的文件存储...这个项目可能包含了配置文件、Java源代码以及相关的文档,供学习者参考和实践。如果你在使用过程中遇到问题,可以查阅给出的博客链接或社区资源,获取更详细的解释和解决方案。

    fastdfs-client-java-1.29-SNAPSHOT.jar

    《深入理解FastDFS客户端Java实现》 FastDFS是一款开源的高性能、轻量级的分布式文件系统,主要用于解决海量数据存储和负载均衡...通过深入学习这些内容,开发者能够更好地利用FastDFS解决实际的文件存储和管理问题。

    fastDFS资源包合集

    【FastDFS资源包合集】是一个专为...总的来说,"fastDFS资源包合集"包含了搭建FastDFS集群所需的所有必要文件,通过学习和实践,你可以快速掌握FastDFS的部署和使用,为你的项目提供稳定、高效的大文件存储解决方案。

    fastDFS 介绍文档,源代码,使用样例,JAR包

    分布式文件系统FastDFS是一种开源的、轻量级的高性能文件存储系统,专为互联网设计,以解决大容量...通过学习和实践提供的文档、源代码和示例,开发者可以掌握其基本操作和高级特性,以应对各种复杂的文件存储需求。

    6.FastDFS.rar

    【FastDFS深度解析】 FastDFS是一款开源的高性能、轻量级的分布式文件系统...通过深入学习和实践提供的"FastDFS.rar"中的代码示例和Word文档,开发者能够更好地理解和掌握FastDFS的使用,从而在实际项目中发挥其优势。

    FastDFS+Nginx安装包

    4. `fastDFSDemo.rar`:可能包含了一些FastDFS的示例代码或配置文件,帮助用户理解和学习如何使用FastDFS。 5. `libfastcommon-master.zip`:FastDFS的依赖库,包含了FastDFS运行所需的通用工具函数,需要先安装这...

    FastDFS_Client_Win.zip

    在这个名为"FastDFS_Client_Win.zip"的压缩包中,包含了FastDFS在Windows操作系统上的客户端示例,特别适合开发者进行快速学习和实践。 FastDFS的核心设计思想是将文件存储与HTTP服务器相结合,通过Tracker服务器...

    FastDFS资源集合.zip

    FastDFS是一款开源的高性能、轻量级的分布式文件系统,主要为互联网应用提供大规模的文件存储解决方案。...开发者可以通过深入学习这些资料,结合实际需求,有效利用FastDFS解决大规模文件存储问题。

    fastdfs_clinet

    【标题】"fastdfs_clinet" 是一个与FastDFS相关的客户端工程,它是针对SSM(Spring、SpringMVC、MyBatis)项目实战TTSC中的第4天学习内容设计的。这个项目的主要目的是帮助开发者理解如何在实际开发环境中集成...

    CentOS7离线安装fastdfs包

    最后,配合博客步骤,你可以更深入地学习和理解FastDFS的使用,包括如何配置Nginx作为FastDFS的反向代理、如何设置防盗链策略、如何实现负载均衡等高级话题。记住,实践是检验真理的唯一标准,只有不断尝试和学习,...

    fastdfs-nginx-module_v1.16.tar.gz源码包,nginx支

    标题中的"fastdfs-nginx-module_v1.16.tar.gz"是一个开源项目,它是一个用于Nginx服务器的模块,旨在使Nginx能够与...对于开发人员而言,深入学习和掌握这些技术,将有助于构建更健壮、高效的分布式文件服务解决方案。

    fastdfs资料包.zip

    《深入理解FastDFS分布式文件系统》 FastDFS是一款开源的高性能、轻量级的分布式文件系统,由C语言编写,广泛应用于互联网领域,尤其在图片、视频...如果你对FastDFS感兴趣,可以参考提供的博客链接进一步学习和研究。

    fastdfs-web示例demo

    【FastDFS介绍】 FastDFS是一个开源的高性能、轻量级的分布式文件系统,它对文件进行管理,包括文件存储、文件...这个"fastdfs-web示例demo"是一个非常有价值的实践案例,对于学习和应用FastDFS具有很高的参考价值。

Global site tag (gtag.js) - Google Analytics