org.csource.fastdfs
类 ProtoCommon

java.lang.Object
  继承者 org.csource.fastdfs.ProtoCommon

public class ProtoCommon
extends Object

protocol common functions

版本:
Version 1.18
作者:
Happy Fish / YuQing

嵌套类摘要
static class ProtoCommon.RecvHeaderInfo
          receive header info
static class ProtoCommon.RecvPackageInfo
          receive package info
 
字段摘要
static long APPENDER_FILE_SIZE
           
static byte ECONNREFUSED
           
static byte ERR_NO_EALREADY
           
static byte ERR_NO_EBUSY
           
static byte ERR_NO_EINVAL
           
static byte ERR_NO_EIO
           
static byte ERR_NO_ENOENT
           
static byte ERR_NO_ENOSPC
           
static int FDFS_DOMAIN_NAME_MAX_SIZE
           
static String FDFS_FIELD_SEPERATOR
           
static byte FDFS_FILE_EXT_NAME_MAX_LEN
           
static byte FDFS_FILE_PATH_LEN
           
static byte FDFS_FILE_PREFIX_MAX_LEN
           
static byte FDFS_FILENAME_BASE64_LENGTH
           
static int FDFS_GROUP_NAME_MAX_LEN
           
static int FDFS_IPADDR_SIZE
           
static byte FDFS_PROTO_CMD_ACTIVE_TEST
           
static byte FDFS_PROTO_CMD_QUIT
           
static int FDFS_PROTO_CMD_SIZE
           
static int FDFS_PROTO_PKG_LEN_SIZE
           
static String FDFS_RECORD_SEPERATOR
           
static int FDFS_STORAGE_ID_MAX_SIZE
           
static byte FDFS_STORAGE_STATUS_ACTIVE
           
static byte FDFS_STORAGE_STATUS_DELETED
           
static byte FDFS_STORAGE_STATUS_INIT
           
static byte FDFS_STORAGE_STATUS_IP_CHANGED
           
static byte FDFS_STORAGE_STATUS_NONE
           
static byte FDFS_STORAGE_STATUS_OFFLINE
           
static byte FDFS_STORAGE_STATUS_ONLINE
           
static byte FDFS_STORAGE_STATUS_SYNCING
           
static byte FDFS_STORAGE_STATUS_WAIT_SYNC
           
static byte FDFS_TRUNK_FILE_INFO_LEN
           
static int FDFS_VERSION_SIZE
           
static long INFINITE_FILE_SIZE
           
static long NORMAL_LOGIC_FILENAME_LENGTH
           
protected static int PROTO_HEADER_CMD_INDEX
           
protected static int PROTO_HEADER_STATUS_INDEX
           
static byte STORAGE_PROTO_CMD_APPEND_FILE
           
static byte STORAGE_PROTO_CMD_DELETE_FILE
           
static byte STORAGE_PROTO_CMD_DOWNLOAD_FILE
           
static byte STORAGE_PROTO_CMD_GET_METADATA
           
static byte STORAGE_PROTO_CMD_MODIFY_FILE
           
static byte STORAGE_PROTO_CMD_QUERY_FILE_INFO
           
static byte STORAGE_PROTO_CMD_RESP
           
static byte STORAGE_PROTO_CMD_SET_METADATA
           
static byte STORAGE_PROTO_CMD_TRUNCATE_FILE
           
static byte STORAGE_PROTO_CMD_UPLOAD_APPENDER_FILE
           
static byte STORAGE_PROTO_CMD_UPLOAD_FILE
           
static byte STORAGE_PROTO_CMD_UPLOAD_SLAVE_FILE
           
static byte STORAGE_SET_METADATA_FLAG_MERGE
          for replace, insert when the meta item not exist, otherwise update it
static byte STORAGE_SET_METADATA_FLAG_OVERWRITE
          for overwrite all old metadata
static byte TRACKER_PROTO_CMD_RESP
           
static byte TRACKER_PROTO_CMD_SERVER_DELETE_STORAGE
           
static byte TRACKER_PROTO_CMD_SERVER_LIST_GROUP
           
static byte TRACKER_PROTO_CMD_SERVER_LIST_STORAGE
           
static byte TRACKER_PROTO_CMD_SERVICE_QUERY_FETCH_ALL
           
static byte TRACKER_PROTO_CMD_SERVICE_QUERY_FETCH_ONE
           
static byte TRACKER_PROTO_CMD_SERVICE_QUERY_STORE_WITH_GROUP_ALL
           
static byte TRACKER_PROTO_CMD_SERVICE_QUERY_STORE_WITH_GROUP_ONE
           
static byte TRACKER_PROTO_CMD_SERVICE_QUERY_STORE_WITHOUT_GROUP_ALL
           
static byte TRACKER_PROTO_CMD_SERVICE_QUERY_STORE_WITHOUT_GROUP_ONE
           
static byte TRACKER_PROTO_CMD_SERVICE_QUERY_UPDATE
           
static int TRACKER_QUERY_STORAGE_FETCH_BODY_LEN
           
static int TRACKER_QUERY_STORAGE_STORE_BODY_LEN
           
static long TRUNK_FILE_MARK_SIZE
           
static long TRUNK_LOGIC_FILENAME_LENGTH
           
 
方法摘要
static boolean activeTest(Socket sock)
          send ACTIVE_TEST command to server, test if network is ok and the server is alive
static int buff2int(byte[] bs, int offset)
          buff convert to int
static long buff2long(byte[] bs, int offset)
          buff convert to long
static void closeSocket(Socket sock)
          send quit command to server and close socket
static String genSlaveFilename(String master_filename, String prefix_name, String ext_name)
          generate slave filename
static String getIpAddress(byte[] bs, int offset)
          buff convert to ip address
static String getStorageStatusCaption(byte status)
           
static String getToken(String remote_filename, int ts, String secret_key)
          get token for file URL
static byte[] long2buff(long n)
          long convert to buff (big-endian)
static String md5(byte[] source)
          md5 function
static String pack_metadata(NameValuePair[] meta_list)
          pack metadata array to string
static byte[] packHeader(byte cmd, long pkg_len, byte errno)
          pack header by FastDFS transfer protocol
static ProtoCommon.RecvHeaderInfo recvHeader(InputStream in, byte expect_cmd, long expect_body_len)
          receive pack header
static ProtoCommon.RecvPackageInfo recvPackage(InputStream in, byte expect_cmd, long expect_body_len)
          receive whole pack
static NameValuePair[] split_metadata(String meta_buff)
          split metadata to name value pair array
static NameValuePair[] split_metadata(String meta_buff, String recordSeperator, String filedSeperator)
          split metadata to name value pair array
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

字段详细信息

FDFS_PROTO_CMD_QUIT

public static final byte FDFS_PROTO_CMD_QUIT
另请参见:
常量字段值

TRACKER_PROTO_CMD_SERVER_LIST_GROUP

public static final byte TRACKER_PROTO_CMD_SERVER_LIST_GROUP
另请参见:
常量字段值

TRACKER_PROTO_CMD_SERVER_LIST_STORAGE

public static final byte TRACKER_PROTO_CMD_SERVER_LIST_STORAGE
另请参见:
常量字段值

TRACKER_PROTO_CMD_SERVER_DELETE_STORAGE

public static final byte TRACKER_PROTO_CMD_SERVER_DELETE_STORAGE
另请参见:
常量字段值

TRACKER_PROTO_CMD_SERVICE_QUERY_STORE_WITHOUT_GROUP_ONE

public static final byte TRACKER_PROTO_CMD_SERVICE_QUERY_STORE_WITHOUT_GROUP_ONE
另请参见:
常量字段值

TRACKER_PROTO_CMD_SERVICE_QUERY_FETCH_ONE

public static final byte TRACKER_PROTO_CMD_SERVICE_QUERY_FETCH_ONE
另请参见:
常量字段值

TRACKER_PROTO_CMD_SERVICE_QUERY_UPDATE

public static final byte TRACKER_PROTO_CMD_SERVICE_QUERY_UPDATE
另请参见:
常量字段值

TRACKER_PROTO_CMD_SERVICE_QUERY_STORE_WITH_GROUP_ONE

public static final byte TRACKER_PROTO_CMD_SERVICE_QUERY_STORE_WITH_GROUP_ONE
另请参见:
常量字段值

TRACKER_PROTO_CMD_SERVICE_QUERY_FETCH_ALL

public static final byte TRACKER_PROTO_CMD_SERVICE_QUERY_FETCH_ALL
另请参见:
常量字段值

TRACKER_PROTO_CMD_SERVICE_QUERY_STORE_WITHOUT_GROUP_ALL

public static final byte TRACKER_PROTO_CMD_SERVICE_QUERY_STORE_WITHOUT_GROUP_ALL
另请参见:
常量字段值

TRACKER_PROTO_CMD_SERVICE_QUERY_STORE_WITH_GROUP_ALL

public static final byte TRACKER_PROTO_CMD_SERVICE_QUERY_STORE_WITH_GROUP_ALL
另请参见:
常量字段值

TRACKER_PROTO_CMD_RESP

public static final byte TRACKER_PROTO_CMD_RESP
另请参见:
常量字段值

FDFS_PROTO_CMD_ACTIVE_TEST

public static final byte FDFS_PROTO_CMD_ACTIVE_TEST
另请参见:
常量字段值

STORAGE_PROTO_CMD_UPLOAD_FILE

public static final byte STORAGE_PROTO_CMD_UPLOAD_FILE
另请参见:
常量字段值

STORAGE_PROTO_CMD_DELETE_FILE

public static final byte STORAGE_PROTO_CMD_DELETE_FILE
另请参见:
常量字段值

STORAGE_PROTO_CMD_SET_METADATA

public static final byte STORAGE_PROTO_CMD_SET_METADATA
另请参见:
常量字段值

STORAGE_PROTO_CMD_DOWNLOAD_FILE

public static final byte STORAGE_PROTO_CMD_DOWNLOAD_FILE
另请参见:
常量字段值

STORAGE_PROTO_CMD_GET_METADATA

public static final byte STORAGE_PROTO_CMD_GET_METADATA
另请参见:
常量字段值

STORAGE_PROTO_CMD_UPLOAD_SLAVE_FILE

public static final byte STORAGE_PROTO_CMD_UPLOAD_SLAVE_FILE
另请参见:
常量字段值

STORAGE_PROTO_CMD_QUERY_FILE_INFO

public static final byte STORAGE_PROTO_CMD_QUERY_FILE_INFO
另请参见:
常量字段值

STORAGE_PROTO_CMD_UPLOAD_APPENDER_FILE

public static final byte STORAGE_PROTO_CMD_UPLOAD_APPENDER_FILE
另请参见:
常量字段值

STORAGE_PROTO_CMD_APPEND_FILE

public static final byte STORAGE_PROTO_CMD_APPEND_FILE
另请参见:
常量字段值

STORAGE_PROTO_CMD_MODIFY_FILE

public static final byte STORAGE_PROTO_CMD_MODIFY_FILE
另请参见:
常量字段值

STORAGE_PROTO_CMD_TRUNCATE_FILE

public static final byte STORAGE_PROTO_CMD_TRUNCATE_FILE
另请参见:
常量字段值

STORAGE_PROTO_CMD_RESP

public static final byte STORAGE_PROTO_CMD_RESP
另请参见:
常量字段值

FDFS_STORAGE_STATUS_INIT

public static final byte FDFS_STORAGE_STATUS_INIT
另请参见:
常量字段值

FDFS_STORAGE_STATUS_WAIT_SYNC

public static final byte FDFS_STORAGE_STATUS_WAIT_SYNC
另请参见:
常量字段值

FDFS_STORAGE_STATUS_SYNCING

public static final byte FDFS_STORAGE_STATUS_SYNCING
另请参见:
常量字段值

FDFS_STORAGE_STATUS_IP_CHANGED

public static final byte FDFS_STORAGE_STATUS_IP_CHANGED
另请参见:
常量字段值

FDFS_STORAGE_STATUS_DELETED

public static final byte FDFS_STORAGE_STATUS_DELETED
另请参见:
常量字段值

FDFS_STORAGE_STATUS_OFFLINE

public static final byte FDFS_STORAGE_STATUS_OFFLINE
另请参见:
常量字段值

FDFS_STORAGE_STATUS_ONLINE

public static final byte FDFS_STORAGE_STATUS_ONLINE
另请参见:
常量字段值

FDFS_STORAGE_STATUS_ACTIVE

public static final byte FDFS_STORAGE_STATUS_ACTIVE
另请参见:
常量字段值

FDFS_STORAGE_STATUS_NONE

public static final byte FDFS_STORAGE_STATUS_NONE
另请参见:
常量字段值

STORAGE_SET_METADATA_FLAG_OVERWRITE

public static final byte STORAGE_SET_METADATA_FLAG_OVERWRITE
for overwrite all old metadata

另请参见:
常量字段值

STORAGE_SET_METADATA_FLAG_MERGE

public static final byte STORAGE_SET_METADATA_FLAG_MERGE
for replace, insert when the meta item not exist, otherwise update it

另请参见:
常量字段值

FDFS_PROTO_PKG_LEN_SIZE

public static final int FDFS_PROTO_PKG_LEN_SIZE
另请参见:
常量字段值

FDFS_PROTO_CMD_SIZE

public static final int FDFS_PROTO_CMD_SIZE
另请参见:
常量字段值

FDFS_GROUP_NAME_MAX_LEN

public static final int FDFS_GROUP_NAME_MAX_LEN
另请参见:
常量字段值

FDFS_IPADDR_SIZE

public static final int FDFS_IPADDR_SIZE
另请参见:
常量字段值

FDFS_DOMAIN_NAME_MAX_SIZE

public static final int FDFS_DOMAIN_NAME_MAX_SIZE
另请参见:
常量字段值

FDFS_VERSION_SIZE

public static final int FDFS_VERSION_SIZE
另请参见:
常量字段值

FDFS_STORAGE_ID_MAX_SIZE

public static final int FDFS_STORAGE_ID_MAX_SIZE
另请参见:
常量字段值

FDFS_RECORD_SEPERATOR

public static final String FDFS_RECORD_SEPERATOR
另请参见:
常量字段值

FDFS_FIELD_SEPERATOR

public static final String FDFS_FIELD_SEPERATOR
另请参见:
常量字段值

TRACKER_QUERY_STORAGE_FETCH_BODY_LEN

public static final int TRACKER_QUERY_STORAGE_FETCH_BODY_LEN
另请参见:
常量字段值

TRACKER_QUERY_STORAGE_STORE_BODY_LEN

public static final int TRACKER_QUERY_STORAGE_STORE_BODY_LEN
另请参见:
常量字段值

FDFS_FILE_EXT_NAME_MAX_LEN

public static final byte FDFS_FILE_EXT_NAME_MAX_LEN
另请参见:
常量字段值

FDFS_FILE_PREFIX_MAX_LEN

public static final byte FDFS_FILE_PREFIX_MAX_LEN
另请参见:
常量字段值

FDFS_FILE_PATH_LEN

public static final byte FDFS_FILE_PATH_LEN
另请参见:
常量字段值

FDFS_FILENAME_BASE64_LENGTH

public static final byte FDFS_FILENAME_BASE64_LENGTH
另请参见:
常量字段值

FDFS_TRUNK_FILE_INFO_LEN

public static final byte FDFS_TRUNK_FILE_INFO_LEN
另请参见:
常量字段值

ERR_NO_ENOENT

public static final byte ERR_NO_ENOENT
另请参见:
常量字段值

ERR_NO_EIO

public static final byte ERR_NO_EIO
另请参见:
常量字段值

ERR_NO_EBUSY

public static final byte ERR_NO_EBUSY
另请参见:
常量字段值

ERR_NO_EINVAL

public static final byte ERR_NO_EINVAL
另请参见:
常量字段值

ERR_NO_ENOSPC

public static final byte ERR_NO_ENOSPC
另请参见:
常量字段值

ECONNREFUSED

public static final byte ECONNREFUSED
另请参见:
常量字段值

ERR_NO_EALREADY

public static final byte ERR_NO_EALREADY
另请参见:
常量字段值

INFINITE_FILE_SIZE

public static final long INFINITE_FILE_SIZE
另请参见:
常量字段值

APPENDER_FILE_SIZE

public static final long APPENDER_FILE_SIZE
另请参见:
常量字段值

TRUNK_FILE_MARK_SIZE

public static final long TRUNK_FILE_MARK_SIZE
另请参见:
常量字段值

NORMAL_LOGIC_FILENAME_LENGTH

public static final long NORMAL_LOGIC_FILENAME_LENGTH
另请参见:
常量字段值

TRUNK_LOGIC_FILENAME_LENGTH

public static final long TRUNK_LOGIC_FILENAME_LENGTH
另请参见:
常量字段值

PROTO_HEADER_CMD_INDEX

protected static final int PROTO_HEADER_CMD_INDEX
另请参见:
常量字段值

PROTO_HEADER_STATUS_INDEX

protected static final int PROTO_HEADER_STATUS_INDEX
另请参见:
常量字段值
方法详细信息

getStorageStatusCaption

public static String getStorageStatusCaption(byte status)

packHeader

public static byte[] packHeader(byte cmd,
                                long pkg_len,
                                byte errno)
                         throws UnsupportedEncodingException
pack header by FastDFS transfer protocol

参数:
cmd - which command to send
pkg_len - package body length
errno - status code, should be (byte)0
返回:
packed byte buffer
抛出:
UnsupportedEncodingException

recvHeader

public static ProtoCommon.RecvHeaderInfo recvHeader(InputStream in,
                                                    byte expect_cmd,
                                                    long expect_body_len)
                                             throws IOException
receive pack header

参数:
in - input stream
expect_cmd - expect response command
expect_body_len - expect response package body length
返回:
RecvHeaderInfo: errno and pkg body length
抛出:
IOException

recvPackage

public static ProtoCommon.RecvPackageInfo recvPackage(InputStream in,
                                                      byte expect_cmd,
                                                      long expect_body_len)
                                               throws IOException
receive whole pack

参数:
in - input stream
expect_cmd - expect response command
expect_body_len - expect response package body length
返回:
RecvPackageInfo: errno and reponse body(byte buff)
抛出:
IOException

split_metadata

public static NameValuePair[] split_metadata(String meta_buff)
split metadata to name value pair array

参数:
meta_buff - metadata
返回:
name value pair array

split_metadata

public static NameValuePair[] split_metadata(String meta_buff,
                                             String recordSeperator,
                                             String filedSeperator)
split metadata to name value pair array

参数:
meta_buff - metadata
recordSeperator - record/row seperator
filedSeperator - field/column seperator
返回:
name value pair array

pack_metadata

public static String pack_metadata(NameValuePair[] meta_list)
pack metadata array to string

参数:
meta_list - metadata array
返回:
packed metadata

closeSocket

public static void closeSocket(Socket sock)
                        throws IOException
send quit command to server and close socket

参数:
sock - the Socket object
抛出:
IOException

activeTest

public static boolean activeTest(Socket sock)
                          throws IOException
send ACTIVE_TEST command to server, test if network is ok and the server is alive

参数:
sock - the Socket object
抛出:
IOException

long2buff

public static byte[] long2buff(long n)
long convert to buff (big-endian)

参数:
n - long number
返回:
8 bytes buff

buff2long

public static long buff2long(byte[] bs,
                             int offset)
buff convert to long

参数:
bs - the buffer (big-endian)
offset - the start position based 0
返回:
long number

buff2int

public static int buff2int(byte[] bs,
                           int offset)
buff convert to int

参数:
bs - the buffer (big-endian)
offset - the start position based 0
返回:
int number

getIpAddress

public static String getIpAddress(byte[] bs,
                                  int offset)
buff convert to ip address

参数:
bs - the buffer (big-endian)
offset - the start position based 0
返回:
ip address

md5

public static String md5(byte[] source)
                  throws NoSuchAlgorithmException
md5 function

参数:
source - the input buffer
返回:
md5 string
抛出:
NoSuchAlgorithmException

getToken

public static String getToken(String remote_filename,
                              int ts,
                              String secret_key)
                       throws UnsupportedEncodingException,
                              NoSuchAlgorithmException,
                              MyException
get token for file URL

参数:
remote_filename - the filename return by FastDFS server
ts - unix timestamp, unit: second
secret_key - the secret key
返回:
token string
抛出:
UnsupportedEncodingException
NoSuchAlgorithmException
MyException

genSlaveFilename

public static String genSlaveFilename(String master_filename,
                                      String prefix_name,
                                      String ext_name)
                               throws MyException
generate slave filename

参数:
master_filename - the master filename to generate the slave filename
prefix_name - the prefix name to generate the slave filename
ext_name - the extension name of slave filename, null for same as the master extension name
返回:
slave filename string
抛出:
MyException


Copyright © 2017. All rights reserved.