建立FastDFS的client
原创package com.***.***.file.utils;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Properties;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.io.FilenameUtils;
import org.csource.common.MyException;
import org.csource.common.NameValuePair;
import org.csource.fastdfs.ClientGlobal;
import org.csource.fastdfs.StorageClient1;
import org.csource.fastdfs.StorageServer;
import org.csource.fastdfs.TrackerClient;
import org.csource.fastdfs.TrackerServer;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component;
@Component
public class FastDFSClient {
@Value("${dfs.connect_timeout}")
private String dfs_connect_timeout;
@Value("${dfs.network_timeout}")
private String dfs_network_timeout;
@Value("${dfs.charset}")
private String dfs_charset;
@Value("${dfs.tracker_http_port}")
private String dfs_tracker_http_port;
@Value("${dfs.anti_steal_token}")
private String dfs_anti_steal_token;
@Value("${dfs.secret_key}")
private String dfs_secret_key;
@Value("${dfs.tracker_server}")
//@Value("#{${dfs.tracker_server}.split(,)}")
private String dfs_tracker_server;
// 初始化FastDFS Client
@Bean
public StorageClient1 getStorageClient() {
try {
Properties props = new Properties();
props.put(ClientGlobal.PROP_KEY_CONNECT_TIMEOUT_IN_SECONDS, dfs_connect_timeout);
props.put(ClientGlobal.PROP_KEY_NETWORK_TIMEOUT_IN_SECONDS, dfs_network_timeout);
props.put(ClientGlobal.PROP_KEY_CHARSET, dfs_charset);
props.put(ClientGlobal.PROP_KEY_HTTP_TRACKER_HTTP_PORT, dfs_tracker_http_port);
props.put(ClientGlobal.PROP_KEY_HTTP_ANTI_STEAL_TOKEN, dfs_anti_steal_token);
props.put(ClientGlobal.PROP_KEY_HTTP_SECRET_KEY, dfs_secret_key);
props.put(ClientGlobal.PROP_KEY_TRACKER_SERVERS, dfs_tracker_server);
ClientGlobal.initByProperties(props);
TrackerClient trackerClient = new TrackerClient(ClientGlobal.g_tracker_group);
TrackerServer trackerServer = trackerClient.getConnection();
if (trackerServer == null) {
throw new IllegalStateException("getConnection return null");
}
StorageServer storageServer = trackerClient.getStoreStorage(trackerServer);
if (storageServer == null) {
throw new IllegalStateException("getStoreStorage return null");
}
return new StorageClient1(trackerServer, storageServer);
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
}
yml根据他们自己dfs服务器配置如下:
dfs.port: 172.**.**.***:88
dfs.port1: http://172.**.**.***:88
dfs.connect_timeout: 1000
dfs.network_timeout: 3000
dfs.charset: UTF-8
dfs.tracker_http_port: 8083
dfs.anti_steal_token: no
dfs.secret_key: FastDFS1111111111
dfs.tracker_server: 172.**.**.***:221220
版权声明
所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除