此处我测试的是上传图片
下处是测试代码,测试的文件上传功能
@Test
public void test04() throws Exception {
//加载配置文件
ClientGlobal.initByTrackers(tracker_server);
ClientGlobal.setG_connect_timeout(connect_timeout);
ClientGlobal.setG_network_timeout(network_timeout);
int g_connect_timeout = ClientGlobal.getG_connect_timeout();
int g_network_timeout = ClientGlobal.getG_network_timeout();
System.out.println(g_connect_timeout+"====="+g_network_timeout);
//创建客户端TrackerClient对象
TrackerClient trackerClient = new TrackerClient();
//通过客户端对象获取trackerServer对象
TrackerServer trackerServer = trackerClient.getConnection();
//通过客户端对象获取storageserver
StorageServer storageServer = trackerClient.getStoreStorage(trackerServer);
//创建一个StorageClient1对象
StorageClient1 storageClient1 = new StorageClient1(trackerServer,storageServer);
//上传
String[] jpgs = storageClient1.upload_appender_file("F:\\1.jpg", "jpg", null);
for (String jpg : jpgs){
System.out.println(jpg);
}
}
当执行此处代码的时候会抛出两个异常
第一个是读取超时
第二个是连接超时
这个时候我检查application.yml配置文件,查找connect_timeout和network_timeout的值,发现此处的值设置太小,在yml配置文件中,是以毫秒为单位的,(如果你的配置文件是fdfs_client.conf,那么它是以秒为单位的,我当时打印到控制台的时候,将秒变成了毫秒进行输出的)我将此处的值改为
yh:
fastdfs:
tracker_server: 192.168.1.201:22122
connect_timeout: 5000
network_timeout: 30000
在进行测试的时候就OK。
我得出这个数值,是我将下面两行代码注释掉
ClientGlobal.setG_connect_timeout(connect_timeout);
ClientGlobal.setG_network_timeout(network_timeout);
直接执行程序,然后调用ClientGlobal中的方法,获取connect_timeout与network_timeout的值,看它内部自己的连接时间与读取时间,并打印到控制台上,之后将得到的时间在配置文件上修改。
此次出错误的原因是,我连接的是别人电脑上的fastdfs,因为网速的原因吧,我们设置同样的值,他在操作时就可以,当然,那个系统安装在他的电脑上,而我的就不行,需要修改值,修改之后就OK了。