调用的API为:
String[] upload_file(
String group_name,//组名,不指定则可设为null
long file_size,//文件大小,必须制定
UploadCallback callback,//回调
String file_ext_name,
NameValuePair[] meta_list
)
/**
* Upload File to DFS, directly transferring java.io.InputStream to java.io.OutStream
* @author Poechant
* @email zhongchao.ustc@gmail.com
* @param fileBuff, file to be uploaded.
* @param uploadFileName, the name of the file.
* @param fileLength, the length of the file.
* @return the file ID in DFS.
* @throws IOException
*/
public String[] uploadFileByStream(InputStream inStream, String uploadFileName, long fileLength) throws IOException {
String[] results = null;
String fileExtName = "";
if (uploadFileName.contains(".")) {
fileExtName = uploadFileName.substring(uploadFileName.lastIndexOf(".") + 1);
} else {
logger.warn("Fail to upload file, because the format of filename is illegal.");
return results;
}
TrackerClient tracker = new TrackerClient();
TrackerServer trackerServer = tracker.getConnection();
StorageServer storageServer = null;
StorageClient1 client = new StorageClient1(trackerServer, storageServer);
NameValuePair[] metaList = new NameValuePair[3];
metaList[0] = new NameValuePair("fileName", uploadFileName);
metaList[1] = new NameValuePair("fileExtName", fileExtName);
metaList[2] = new NameValuePair("fileLength", String.valueOf(fileLength));
try {
// results[0]: groupName, results[1]: remoteFilename.
results = client.upload_file(null, fileLength, new UploadFileSender(inStream), fileExtName, metaList);
} catch (Exception e) {
logger.warn("Upload file \"" + uploadFileName + "\"fails");
}
trackerServer.close();
return results;
}
其中的UploadFileSender是一个实现了UploadCallback接口的类:
private static class UploadFileSender implements UploadCallback {
private InputStream inStream;
public UploadFileSender(InputStream inStream) {
this.inStream = inStream;
}
public int send(OutputStream out) throws IOException {
int readBytes;
while((readBytes = inStream.read()) > 0) {
out.write(readBytes);
}
return 0;
}
}
分享到:
相关推荐
FastDFS客户端配置文件,主要是为了配置FastDFS服务器的ip地址
FastDFS_配置文件详解
FastDFS文件服务器部署, FastDFS文件服务器部署 FastDFS文件服务器部署
FastDFS服务器是一个轻量级的文件存储服务,结合Nginx使用,实现集群高可用,但是他的java客户端不是特别好找。本java客户端依赖包,能够完美整合实现FastDFS服务器的连接,上传、下载和删除。 内部附有简单API使用...
FastDFS客户端代码
FastDFS配置反向代理时nginx.conf配置文件.confFastDFS配置反向代理时nginx.conf配置文件.confFastDFS配置反向代理时nginx.conf配置文件.confFastDFS配置反向代理时nginx.conf配置文件.confFastDFS配置反向代理时...
FastDFS配置文件
详见我的博客《FastDFS配置文件详解》
通过java向fastdfs上传文件实例
fastDFS配置文件,主要修改其中的Service就可以了,其他可默认。
fastdfs客户端api fastdfs_client_java_v1.10.tar.gz 解压缩即可使用
本文档详细介绍了centos下安装部署服务器的过程,fastdfs文件服务器+nginx,docker容器集群的搭建以及附上所需安装包的下载链接等
fastDFS文件服务器
本资源包含centos安装FastDFS所需要的安装包资源,也包含Springboot集成FastDFS Client的样例代码,相关教程请参考我的博客https://blog.csdn.net/tuguai7887/article/details/96484574。声明:我不想要积分,但csdn...
•支持相同内容的文件只保存一份,节约磁盘空间 •FastDFS只能通过ClientAPI访问,不支持POSIX访问方式 •FastDFS特别适合大中型网站使用,用来存储资源文件(如:图片、文档、音频、视频等等)
fastDFS分布式文件系统部署方案,详细部署步骤,一看便知; FastDFS 是一个开源的高性能分布式文件系统( DFS )。 它的主要功能包括:文件存储,文件同步和 文件访问,以及高容量和负载平衡。主要解决了海量数据...
fastdfs在ubuntu上的部署配置
使用fastdfs上传文件
在tracker集群配置storage集群的反向代理时,需要使用该配置文件
fastdfs文件上传下载笔记,fastdfs文件上传下载笔记,fastdfs文件上传下载笔记,fastdfs文件上传下载笔记,fastdfs文件上传下载笔记,fastdfs文件上传下载笔记,fastdfs文件上传下载笔记,fastdfs文件上传下载笔记,...