`
247687009
  • 浏览: 174531 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

FastDFS(二)之原生java API的操作

阅读更多

fastDFS 官方提供了原生的javaAPI支持,可是的是并没有提供连接池技术,这一篇将介绍原始API,下一篇将自己写一个连接池来优化性能。

package com.fastDFS;

import java.io.FileNotFoundException;
import java.io.IOException;
import java.net.InetSocketAddress;
import java.util.UUID;

import org.csource.common.MyException;
import org.csource.common.NameValuePair;
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.TrackerGroup;
import org.csource.fastdfs.TrackerServer;

public class DFSTest2 {
        public String local_filename = "D:\\seafood_project\\fast_DFS\\src\\client.conf";
        public String conf_filename = "D:\\seafood_project\\fast_DFS\\src\\client.conf";
        public String jpg = "D:/seafood_project/seafood-front/src/main/webapp/common/productImg/11.png";
        @org.junit.Test
        public void testUpload() {

                try {
                        // 连接超时的时限,单位为毫秒
                        ClientGlobal.setG_connect_timeout(2000);
                        // 网络超时的时限,单位为毫秒
                        ClientGlobal.setG_network_timeout(30000);
                        ClientGlobal.setG_anti_steal_token(false);
                        // 字符集
                        ClientGlobal.setG_charset("UTF-8");
                        ClientGlobal.setG_secret_key(null);
                        // HTTP访问服务的端口号
                        ClientGlobal.setG_tracker_http_port(8088);
                        // Tracker服务器列表
                        InetSocketAddress[] tracker_servers = new InetSocketAddress[1];
                        tracker_servers[0] = new InetSocketAddress("192.168.235.140", 22122);
                        ClientGlobal.setG_tracker_group(new TrackerGroup(tracker_servers));

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

                        StorageClient storageClient = new StorageClient(trackerServer, storageServer);
                        NameValuePair nvp[] = new NameValuePair[] { new NameValuePair("age", "18"),
                                        new NameValuePair("sex", "male") };
                        String fileIds[] = storageClient.upload_file(jpg, 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("g1", "M00/A6/97/wKjrh1Nn0Y6AAei8AAACq0FJbOo69.conf");
                        System.out.println(b);
                        getFile(b, "d:\\", UUID.randomUUID().toString() + ".conf");
                } catch (Exception e) {
                        e.printStackTrace();
                }
        }

        private void getFile(byte[] b, String string, String string2) {

        }

        @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/wKjrhlNQR5aAGb0lAAACquP_VhU29.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();
                }
        }
}


分享到:
评论

相关推荐

    fastdfs-client-java-1.29-SNAPSHOT.jar

    client-java`时,首先需要在项目中引入`fastdfs-client-java-1.29-SNAPSHOT.jar`和`commons-io-2.4.jar`这两个依赖库,然后根据`fdfs_client.conf`配置客户端,并通过`FastDFSClient`类提供的API进行文件操作。...

    fastdfs-client-java-1.27.zip

    它提供了易于使用的API,使得Java程序员可以方便地在项目中集成FastDFS服务。 2. **fastdfs-client-java-1.27-SNAPSHOT.pom**:这是Maven项目的依赖配置文件,包含了该库的依赖关系和版本信息。如果项目使用Maven...

    fastdfs-client-javajar1.27-SNAPSHOT.zip

    3. 使用API:FastDFS提供了一系列的Java API,用于文件的上传、下载、删除等操作。 总的来说,FastDFS客户端Java版是Java开发者与FastDFS服务交互的重要工具,它的使用涉及到项目构建配置、网络通信以及文件操作等...

    fastdfs-client-java-1.27-SNAPSHOT.zip

    总的来说,Fastdfs-client-java-1.27-SNAPSHOT是Java开发者接入FastDFS系统的重要工具,通过其提供的API,可以轻松地在Java应用中实现对FastDFS的文件操作,提升文件服务的稳定性和效率。对于大型的、以文件为中心的...

    fastdfs-client-java-master

    在Java开发环境中,FastDFS-Client-Java-Master提供了完整的API接口,使得Java应用可以方便地进行文件上传、下载、删除等操作。这个库通常与Maven构建工具配合使用,通过在项目中引入依赖,即可轻松集成到Java项目中...

    fastdfs-client-java-1.27

    FastDFS客户端Java库1.27版则是针对Java应用设计的接口,使得Java开发者能够方便地与FastDFS服务器进行交互,实现文件上传、下载、查询等操作。本文将深入探讨这个版本的特性、使用方法及其源码分析。 一、FastDFS...

    fastdfs-client-javajar1.29-SNAPSHOT.zip

    总的来说,"fastdfs-client-javajar1.29-SNAPSHOT.zip"这个压缩包包含的是FastDFS的Java客户端库,用于在Java项目中与FastDFS服务器进行交互,实现文件的上传、下载和其他管理操作。在使用这个库时,开发者需要了解...

    fastdfs-client-java1.26

    FastDFS-client-java的API设计简洁明了,主要包含以下核心接口: - TrackerClient:用于连接和管理Tracker服务器,获取Storage服务器的信息。 - StorageClient:与Storage服务器交互,执行文件上传、下载、删除等...

    fastdfs-client-java-1.27-RELEASE

    fastdfs-client-java-1.27-RELEASE 版本 很实用 spring boot整合fastdfs

    fastdfs-client-java-1.29.jar

    mvn install:install-file -DgroupId=org.csource -DartifactId=fastdfs-client-java -Dversion=1.29 -Dpackaging=jar -Dfile=fastdfs-client-java-1.29.jar <groupId>org.csource <artifactId>fastdfs-...

    fastdfs-client-java-master.zip

    使用FastDFS客户端Java库时,开发者需要配置FastDFS服务器的地址和相关参数,然后可以通过API调用来执行以下操作: 1. 文件上传:将本地文件上传到FastDFS服务器,返回文件ID。 2. 文件下载:根据文件ID从FastDFS...

    java操作FastDfs-api(代码实例加jar包)

    Java操作FastDFS通常会借助于FastDFS的Java客户端API,也就是`fastdfs-client-java`,这是一个便于Java开发者与FastDFS进行交互的库。 在标题"java操作FastDfs-api(代码实例加jar包)"中,提到了使用Java API来操作...

    fastdfs-client-java-1.25.jar

    fastdfs-client-java-1.25.jar包

    fastdfs-client-java-1.28.zip

    解压放到maven仓库当中 POM文件添加下面的依赖 <groupId>org.csource <artifactId>fastdfs-client-java <version>1.28 </dependency>

    fastdfs-client-java-1.27-SNAPSHOT.jar

    fastdfs-client-java-1.27 客户端,保证可用

    fastdfs_client_java_v1.24.tar.gz

    fastdfs_client_java_v1.24.tar.gz 下载 a

    fastdfs-client-java-5.0.4.zip

    二、fastdfs-client-java-5.0.4.jar包内容 fastdfs-client-java-5.0.4.jar包含了所有必要的类和资源,使得Java程序可以调用FastDFS的API。主要包含以下几个关键模块: 1. 连接管理:负责与FastDFS服务器建立和管理...

Global site tag (gtag.js) - Google Analytics