fastdfs_java测试代码

上传:

/**
 * <p><b>Title:</b> TestUpload.java </p>
 * @Package fastdfs
 */
package fastdfs;

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;

/**
 * <p>
 * <b>TestUpload Description:</b> (测试上传)
 * </p>
 *
 * @author Xu Debiao <b>DATE:</b> 2016年7月23日 下午5:19:00
 */
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("D:\\x.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("");
        }
    }
}

控制台:

配置文件:D:\__work\xudebiao\fastdfs\bin\fdfs_client.conf
file length: 274328
store storage servers count: 1
1. 121.196.215.6:23000

upload_file time used: 2036 ms
group_name: group1, remote_filename: M00/00/00/rBAAAVeTOgqAViirAAQvmOWw9sk233.jpg
source_ip_addr = 172.16.0.1, file_size = 274328, create_timestamp = 2016-07-23 17:34:02, crc32 = -441387319
storage servers count: 1
1. 121.196.215.6:23000

下载:

/**
 * <p><b>Title:</b> TestGet.java </p>
 * @Package fastdfs
 */
package fastdfs;

import java.io.File;

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;

/**
 * <p>
 * <b>TestGet Description:</b> (测试下载)
 * </p>
 *
 * @author Xu Debiao <b>DATE:</b> 2016年7月23日 下午5:24:57
 */
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/rBAAAVeTOgqAViirAAQvmOWw9sk233.jpg";
        FileInfo fi = storageClient.get_file_info(group_name, remote_filename);
        String sourceIpAddr = fi.getSourceIpAddr();
        long size = fi.getFileSize();
        System.out.println("ip:" + sourceIpAddr + ",size:" + size);
    }
}

控制台:

ip:172.16.0.1,size:274328

时间: 2024-11-13 20:15:42

fastdfs_java测试代码的相关文章

测试代码

   编写函数或类时,还可以为其编写测试.通过测试,可确定代码面对各种输入都能够按照要求那样工作. 单元测试和测试用例:   单元测试用于核实蛮熟的某个方面没有问题:测试用例是一组单元测试,这些单元测试一起核实函数在各种情形下的行为都符合要求. 良好的测试用例考虑到了函数可能收到的各种输入,包含针对这些所有情形的测试. 全覆盖测试用例包含一整套单元测试,涵盖了各种可能的函数使用方式.对于大型项目,要实现覆盖可能很难.所以通常,最初只要针对 代码的重要行为编写测试即可,等项目被广泛使用率再考虑全覆

第4次作业类测试代码+105032014166+张珍珍

第4次作业:准备类测试代码 类测试代码的具体要求如下: (1)设计三角形完整程序 已经完成的方法是:  String triangle(int a,int b,int c) 现在要求继续增加新的功能: 建立界面,至少包含以下元素,但不限于此: 完成面积的方法:float triangleArea(int a,int b,int c) ,完成周长的方法:int perimeter(int a,int b,int c) 要求: 1.        画出类图: 2.        完成界面和相应的功能

Android网络传输中必用的两个加密算法:MD5 和 RSA (附java完成测试代码)

MD5和RSA是网络传输中最常用的两个算法,了解这两个算法原理后就能大致知道加密是怎么一回事了.但这两种算法使用环境有差异,刚好互补. 一.MD5算法 首先MD5是不可逆的,只能加密而不能解密.比如明文是yanzi1225627,得到MD5加密后的字符串是:14F2AE15259E2C276A095E7394DA0CA9  但不能由后面一大串倒推出yanzi1225627.因此可以用来存储用户输入的密码在服务器上.现在下载文件校验文件是否中途被篡改也是用的它,原理参见:http://blog.c

MyPython--&gt;进阶篇--&gt;测试代码

测试函数 要学习测试,得要有测试的代码.下面是一个简单的函数,接受名和姓并返回整洁的姓名 name_function.py def get_allname(x,m): allname = ('%s %s'%(x,m)).title() return allname 编写测试代码 from name_function import get_allname print(get_allname('cc','leo')) import unittest class NameTestCase(unitte

x264测试代码

建立一个工程,将头文件,库文件加载到工程,测试代码如下:#include <iostream>#include <string>#include "stdint.h"  //如果没有,下载地址为:http://download.csdn.net/detail/evsqiezi/7014021extern "C"{#include "x264.h"#include "x264_config.h"};usi

Maven配置插件跳过测试代码的编译和运行

Maven配置插件跳过测试代码的编译和运行: <!-- 编译插件 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.7</source> <target>1.7</targe

linux下libphenom的测试代码

使用说明:测试使用libphenom库的字符串追加函数,效率是strcat的60多倍.所以在进行大量的字符串累加的时候可以考虑使用libphenom库  依赖库: ck-0.4.5.tar.gz cmake-3.1.2.tar.gz libtap-1.12.0.tar.bz2 libphenom.tar.gz 头文件: #include <phenom/sysutil.h> #include <phenom/string.h> #include <phenom/stream.

国嵌内核驱动进阶班-7-1(Ioctl设备控制)--- 测试代码

驱动内容: 1 #include <linux/module.h> 2 #include <linux/types.h> 3 #include <linux/fs.h> 4 #include <linux/errno.h> 5 #include <linux/mm.h> 6 #include <linux/sched.h> 7 #include <linux/init.h> 8 #include <linux/cde

测试代码高亮

测试方法 测试代码 测试方法 测试代码 源代码,按Markdown语法进行默认的代码高亮的效果: let g:octopress_path = "path/to/dir" 使用octopress的代码高亮进行显示的效果: 测试语法高亮 1 let g:octopress_path = "path/to/dir" 网上的一个例子 Discover if a number is primeSource Article 1 2 3 4 5 class Fixnum def