/** * Copyright (C) 2008 Happy Fish / YuQing * * FastDFS Java Client may be copied only under the terms of the GNU Lesser * General Public License (LGPL). * Please visit the FastDFS Home Page http://www.csource.org/ for more detail. **/ package org.csource.fastdfs.test; import java.io.*; import java.net.*; import java.util.*; import org.csource.common.*; import org.csource.fastdfs.*; /** * client test * @author Happy Fish / YuQing * @version Version 1.20 */ public class TestAppender { private TestAppender() { } /** * entry point * @param args comand arguments * * */ public static void main(String args[]) { if (args.length < 2) { System.out.println("Error: Must have 2 parameters, one is config filename, " + "the other is the local filename to upload"); return; } System.out.println("java.version=" + System.getProperty("java.version")); String conf_filename = args[0]; String local_filename = args[1]; try { ClientGlobal.init(conf_filename); System.out.println("network_timeout=" + ClientGlobal.g_network_timeout + "ms"); System.out.println("charset=" + ClientGlobal.g_charset); long startTime; String group_name; String remote_filename; ServerInfo[] servers; TrackerClient tracker = new TrackerClient(); TrackerServer trackerServer = tracker.getConnection(); StorageServer storageServer = null; /* storageServer = tracker.getStoreStorage(trackerServer); if (storageServer == null) { System.out.println("getStoreStorage fail, error code: " + tracker.getErrorCode()); return; } */ StorageClient client = new StorageClient(trackerServer, storageServer); byte[] file_buff; NameValuePair[] meta_list; String[] results; String appender_filename; String file_ext_name; int errno; meta_list = new NameValuePair[4]; meta_list[0] = new NameValuePair("width", "800"); meta_list[1] = new NameValuePair("heigth", "600"); meta_list[2] = new NameValuePair("bgcolor", "#FFFFFF"); meta_list[3] = new NameValuePair("author", "Mike"); file_buff = "this is a test".getBytes(ClientGlobal.g_charset); System.out.println("file length: " + file_buff.length); group_name = null; StorageServer[] storageServers = tracker.getStoreStorages(trackerServer, group_name); if (storageServers == null) { System.err.println("get store storage servers fail, error code: " + tracker.getErrorCode()); } else { System.err.println("store storage servers count: " + storageServers.length); for (int k=0; k 0 && local_filename.length() - nPos <= ProtoCommon.FDFS_FILE_EXT_NAME_MAX_LEN + 1) { file_ext_name = local_filename.substring(nPos+1); } else { file_ext_name = null; } results = client.upload_appender_file(null, f.length(), new UploadLocalFileSender(local_filename), file_ext_name, meta_list); if (results != null) { group_name = results[0]; remote_filename = results[1]; System.out.println("group name: " + group_name + ", remote filename: " + remote_filename); System.out.println(client.get_file_info(group_name, remote_filename)); appender_filename = remote_filename; startTime = System.currentTimeMillis(); errno = client.append_file(group_name, appender_filename, f.length(), new UploadLocalFileSender(local_filename)); System.out.println("append_file time used: " + (System.currentTimeMillis() - startTime) + " ms"); if (errno == 0) { System.err.println(client.get_file_info(group_name, appender_filename)); } else { System.err.println("append file fail, error no: " + errno); } startTime = System.currentTimeMillis(); errno = client.modify_file(group_name, appender_filename, 0, f.length(), new UploadLocalFileSender(local_filename)); System.out.println("modify_file time used: " + (System.currentTimeMillis() - startTime) + " ms"); if (errno == 0) { System.err.println(client.get_file_info(group_name, appender_filename)); } else { System.err.println("modify file fail, error no: " + errno); } startTime = System.currentTimeMillis(); errno = client.truncate_file(group_name, appender_filename); System.out.println("truncate_file time used: " + (System.currentTimeMillis() - startTime) + " ms"); if (errno == 0) { System.err.println(client.get_file_info(group_name, appender_filename)); } else { System.err.println("truncate file fail, error no: " + errno); } } else { System.err.println("Upload file fail, error no: " + errno); } storageServer = tracker.getFetchStorage(trackerServer, group_name, remote_filename); if (storageServer == null) { System.out.println("getFetchStorage fail, errno code: " + tracker.getErrorCode()); return; } /* for test only */ System.out.println("active test to storage server: " + ProtoCommon.activeTest(storageServer.getSocket())); storageServer.close(); /* for test only */ System.out.println("active test to tracker server: " + ProtoCommon.activeTest(trackerServer.getSocket())); trackerServer.close(); } catch(Exception ex) { ex.printStackTrace(); } } }