构建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

猜你喜欢

转载自blog.csdn.net/qq_42969135/article/details/115961253
今日推荐