com.github.tobato.fastdfs.service.DefaultTrackerClient Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of fastdfs-client Show documentation
Show all versions of fastdfs-client Show documentation
基于yuqih发布的代码与fastdfs-client 官方1.26版本的重构
package com.github.tobato.fastdfs.service;
import java.util.List;
import javax.annotation.Resource;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import com.github.tobato.fastdfs.conn.TrackerConnectionManager;
import com.github.tobato.fastdfs.domain.GroupState;
import com.github.tobato.fastdfs.domain.StorageNode;
import com.github.tobato.fastdfs.domain.StorageNodeInfo;
import com.github.tobato.fastdfs.domain.StorageState;
import com.github.tobato.fastdfs.proto.tracker.TrackerDeleteStorageCommand;
import com.github.tobato.fastdfs.proto.tracker.TrackerGetFetchStorageCommand;
import com.github.tobato.fastdfs.proto.tracker.TrackerGetStoreStorageCommand;
import com.github.tobato.fastdfs.proto.tracker.TrackerListGroupsCommand;
import com.github.tobato.fastdfs.proto.tracker.TrackerListStoragesCommand;
/**
* 目录服务客户端默认实现
*
* @author tobato
*
*/
@Service
public class DefaultTrackerClient implements TrackerClient {
@Resource
private TrackerConnectionManager trackerConnectionManager;
/**
* 获取存储节点
*/
@Override
public StorageNode getStoreStorage() {
TrackerGetStoreStorageCommand command = new TrackerGetStoreStorageCommand();
return trackerConnectionManager.executeFdfsTrackerCmd(command);
}
/**
* 按组获取存储节点
*/
@Override
public StorageNode getStoreStorage(String groupName) {
TrackerGetStoreStorageCommand command;
if (StringUtils.isBlank(groupName)) {
command = new TrackerGetStoreStorageCommand();
} else {
command = new TrackerGetStoreStorageCommand(groupName);
}
return trackerConnectionManager.executeFdfsTrackerCmd(command);
}
/**
* 获取源服务器
*/
@Override
public StorageNodeInfo getFetchStorage(String groupName, String filename) {
TrackerGetFetchStorageCommand command = new TrackerGetFetchStorageCommand(groupName, filename, false);
return trackerConnectionManager.executeFdfsTrackerCmd(command);
}
/**
* 获取更新服务器
*/
@Override
public StorageNodeInfo getUpdateStorage(String groupName, String filename) {
TrackerGetFetchStorageCommand command = new TrackerGetFetchStorageCommand(groupName, filename, true);
return trackerConnectionManager.executeFdfsTrackerCmd(command);
}
/**
* 列出组
*/
@Override
public List listGroups() {
TrackerListGroupsCommand command = new TrackerListGroupsCommand();
return trackerConnectionManager.executeFdfsTrackerCmd(command);
}
/**
* 按组列出存储状态
*/
@Override
public List listStorages(String groupName) {
TrackerListStoragesCommand command = new TrackerListStoragesCommand(groupName);
return trackerConnectionManager.executeFdfsTrackerCmd(command);
}
/**
* 按ip列出存储状态
*/
@Override
public List listStorages(String groupName, String storageIpAddr) {
TrackerListStoragesCommand command = new TrackerListStoragesCommand(groupName, storageIpAddr);
return trackerConnectionManager.executeFdfsTrackerCmd(command);
}
/**
* 删除存储节点
*/
@Override
public void deleteStorage(String groupName, String storageIpAddr) {
TrackerDeleteStorageCommand command = new TrackerDeleteStorageCommand(groupName, storageIpAddr);
trackerConnectionManager.executeFdfsTrackerCmd(command);
}
}