基于mina的NIO java client
昨天测试的有点马虎,多线程环境下还有点问题。
基于mina做了一个NIO的java client。
相比原来的java client会有更好的性能。使用方法和原来类似。
依赖的mina包请到 apache mina 网站上下载。http://mina.apache.org/
协议的打解包都还是使用的原来的代码的实现。
还比较粗糙,很多异常处理还没有完善,先拿出来抛砖引玉。
例如:
byte[] data=new byte[]{1,1,1,1,1}; StorageClient client=new StorageClient(new String[]{"192.168.56.101:22122"}); //上传文件 FastDfsFile file=client.uploadFile(null, "gif", data, 0, null); System.out.println("File:"+file.getGroupName()+";"+file.getFileName()); for (int i = 0; i < 10; i++) { //下载 byte[] buffer=client.downLoadFile(file.getGroupName(), file.getFileName()); if (buffer!=null) { System.out.println("Download time:"+i); assert buffer.equals(data); } } NameValuePair[] meta_list; meta_list = new NameValuePair[4]; meta_list[0] = new NameValuePair("width", "800"+getId()); meta_list[1] = new NameValuePair("heigth", "600"+getId()); meta_list[2] = new NameValuePair("bgcolor", "#FFFFFF"); meta_list[3] = new NameValuePair("author", "Mike"); System.out.println("SetMeta File:"+file.getGroupName()+";"+file.getFileName()); boolean result=client.setMetaData(file.getGroupName(), file.getFileName(), meta_list,ProtoCommon.STORAGE_SET_METADATA_FLAG_OVERWRITE); assert result==true; System.out.println("GetMeta File:"+file.getGroupName()+";"+file.getFileName()); NameValuePair[] metas=client.getMetaData(file.getGroupName(), file.getFileName()); assert metas==meta_list; System.out.println("Delete File:"+file.getGroupName()+";"+file.getFileName()); result=client.deleteFile(file.getGroupName(), file.getFileName()); |
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
非常好,顶一个,希望继续完善哦。