org.csource.fastdfs
Class StorageClient

java.lang.Object
  extended by org.csource.fastdfs.StorageClient
Direct Known Subclasses:
StorageClient1

public class StorageClient
extends java.lang.Object

Storage client for 2 fields file id: group name and filename

Version:
Version 1.21
Author:
Happy Fish / YuQing

Nested Class Summary
static class StorageClient.UploadBuff
          Upload file by file buff
 
Field Summary
static Base64 base64
           
protected  byte errno
           
protected  StorageServer storageServer
           
protected  TrackerServer trackerServer
           
 
Constructor Summary
StorageClient()
          constructor using global settings in class ClientGlobal
StorageClient(TrackerServer trackerServer, StorageServer storageServer)
          constructor with tracker server and storage server
 
Method Summary
 int append_file(java.lang.String group_name, java.lang.String appender_filename, byte[] file_buff)
          append file to storage server (by file buff)
 int append_file(java.lang.String group_name, java.lang.String appender_filename, byte[] file_buff, int offset, int length)
          append file to storage server (by file buff)
 int append_file(java.lang.String group_name, java.lang.String appender_filename, long file_size, UploadCallback callback)
          append file to storage server (by callback)
 int append_file(java.lang.String group_name, java.lang.String appender_filename, java.lang.String local_filename)
          append file to storage server (by file name)
 int delete_file(java.lang.String group_name, java.lang.String remote_filename)
          delete file from storage server
protected  int do_append_file(java.lang.String group_name, java.lang.String appender_filename, long file_size, UploadCallback callback)
          append file to storage server
protected  int do_modify_file(java.lang.String group_name, java.lang.String appender_filename, long file_offset, long modify_size, UploadCallback callback)
          modify appender file to storage server
protected  java.lang.String[] do_upload_file(byte cmd, java.lang.String group_name, java.lang.String master_filename, java.lang.String prefix_name, java.lang.String file_ext_name, long file_size, UploadCallback callback, NameValuePair[] meta_list)
          upload file to storage server
 byte[] download_file(java.lang.String group_name, java.lang.String remote_filename)
          download file from storage server
 int download_file(java.lang.String group_name, java.lang.String remote_filename, DownloadCallback callback)
          download file from storage server
 byte[] download_file(java.lang.String group_name, java.lang.String remote_filename, long file_offset, long download_bytes)
          download file from storage server
 int download_file(java.lang.String group_name, java.lang.String remote_filename, long file_offset, long download_bytes, DownloadCallback callback)
          download file from storage server
 int download_file(java.lang.String group_name, java.lang.String remote_filename, long file_offset, long download_bytes, java.lang.String local_filename)
          download file from storage server
 int download_file(java.lang.String group_name, java.lang.String remote_filename, java.lang.String local_filename)
          download file from storage server
 FileInfo get_file_info(java.lang.String group_name, java.lang.String remote_filename)
          get file info decoded from the filename, fetch from the storage if necessary
 NameValuePair[] get_metadata(java.lang.String group_name, java.lang.String remote_filename)
          get all metadata items from storage server
 byte getErrorCode()
          get the error code of last call
 int modify_file(java.lang.String group_name, java.lang.String appender_filename, long file_offset, byte[] file_buff)
          modify appender file to storage server (by file buff)
 int modify_file(java.lang.String group_name, java.lang.String appender_filename, long file_offset, byte[] file_buff, int buffer_offset, int buffer_length)
          modify appender file to storage server (by file buff)
 int modify_file(java.lang.String group_name, java.lang.String appender_filename, long file_offset, long modify_size, UploadCallback callback)
          modify appender file to storage server (by callback)
 int modify_file(java.lang.String group_name, java.lang.String appender_filename, long file_offset, java.lang.String local_filename)
          modify appender file to storage server (by file name)
protected  boolean newReadableStorageConnection(java.lang.String group_name, java.lang.String remote_filename)
          check storage socket, if null create a new connection
protected  boolean newUpdatableStorageConnection(java.lang.String group_name, java.lang.String remote_filename)
          check storage socket, if null create a new connection
protected  boolean newWritableStorageConnection(java.lang.String group_name)
          check storage socket, if null create a new connection
 FileInfo query_file_info(java.lang.String group_name, java.lang.String remote_filename)
          get file info from storage server
protected  void send_download_package(java.lang.String group_name, java.lang.String remote_filename, long file_offset, long download_bytes)
          send package to storage server
protected  void send_package(byte cmd, java.lang.String group_name, java.lang.String remote_filename)
          send package to storage server
 int set_metadata(java.lang.String group_name, java.lang.String remote_filename, NameValuePair[] meta_list, byte op_flag)
          set metadata items to storage server
 int truncate_file(java.lang.String group_name, java.lang.String appender_filename)
          truncate appender file to size 0 from storage server
 int truncate_file(java.lang.String group_name, java.lang.String appender_filename, long truncated_file_size)
          truncate appender file from storage server
 java.lang.String[] upload_appender_file(byte[] file_buff, int offset, int length, java.lang.String file_ext_name, NameValuePair[] meta_list)
          upload appender file to storage server (by file buff)
 java.lang.String[] upload_appender_file(byte[] file_buff, java.lang.String file_ext_name, NameValuePair[] meta_list)
          upload appender file to storage server (by file buff)
 java.lang.String[] upload_appender_file(java.lang.String group_name, byte[] file_buff, int offset, int length, java.lang.String file_ext_name, NameValuePair[] meta_list)
          upload appender file to storage server (by file buff)
 java.lang.String[] upload_appender_file(java.lang.String group_name, byte[] file_buff, java.lang.String file_ext_name, NameValuePair[] meta_list)
          upload appender file to storage server (by file buff)
 java.lang.String[] upload_appender_file(java.lang.String group_name, long file_size, UploadCallback callback, java.lang.String file_ext_name, NameValuePair[] meta_list)
          upload appender file to storage server (by callback)
 java.lang.String[] upload_appender_file(java.lang.String local_filename, java.lang.String file_ext_name, NameValuePair[] meta_list)
          upload appender file to storage server (by file name)
protected  java.lang.String[] upload_appender_file(java.lang.String group_name, java.lang.String local_filename, java.lang.String file_ext_name, NameValuePair[] meta_list)
          upload appender file to storage server (by file name)
 java.lang.String[] upload_file(byte[] file_buff, int offset, int length, java.lang.String file_ext_name, NameValuePair[] meta_list)
          upload file to storage server (by file buff)
 java.lang.String[] upload_file(byte[] file_buff, java.lang.String file_ext_name, NameValuePair[] meta_list)
          upload file to storage server (by file buff)
protected  java.lang.String[] upload_file(byte cmd, java.lang.String group_name, java.lang.String local_filename, java.lang.String file_ext_name, NameValuePair[] meta_list)
          upload file to storage server (by file name)
 java.lang.String[] upload_file(java.lang.String group_name, byte[] file_buff, int offset, int length, java.lang.String file_ext_name, NameValuePair[] meta_list)
          upload file to storage server (by file buff)
 java.lang.String[] upload_file(java.lang.String group_name, byte[] file_buff, java.lang.String file_ext_name, NameValuePair[] meta_list)
          upload file to storage server (by file buff)
 java.lang.String[] upload_file(java.lang.String group_name, long file_size, UploadCallback callback, java.lang.String file_ext_name, NameValuePair[] meta_list)
          upload file to storage server (by callback)
 java.lang.String[] upload_file(java.lang.String local_filename, java.lang.String file_ext_name, NameValuePair[] meta_list)
          upload file to storage server (by file name)
 java.lang.String[] upload_file(java.lang.String group_name, java.lang.String master_filename, java.lang.String prefix_name, byte[] file_buff, int offset, int length, java.lang.String file_ext_name, NameValuePair[] meta_list)
          upload file to storage server (by file buff, slave file mode)
 java.lang.String[] upload_file(java.lang.String group_name, java.lang.String master_filename, java.lang.String prefix_name, byte[] file_buff, java.lang.String file_ext_name, NameValuePair[] meta_list)
          upload file to storage server (by file buff, slave file mode)
 java.lang.String[] upload_file(java.lang.String group_name, java.lang.String master_filename, java.lang.String prefix_name, long file_size, UploadCallback callback, java.lang.String file_ext_name, NameValuePair[] meta_list)
          upload file to storage server (by callback, slave file mode)
protected  java.lang.String[] upload_file(java.lang.String group_name, java.lang.String local_filename, java.lang.String file_ext_name, NameValuePair[] meta_list)
          upload file to storage server (by file name)
 java.lang.String[] upload_file(java.lang.String group_name, java.lang.String master_filename, java.lang.String prefix_name, java.lang.String local_filename, java.lang.String file_ext_name, NameValuePair[] meta_list)
          upload file to storage server (by file name, slave file mode)
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

base64

public static final Base64 base64

trackerServer

protected TrackerServer trackerServer

storageServer

protected StorageServer storageServer

errno

protected byte errno
Constructor Detail

StorageClient

public StorageClient()
constructor using global settings in class ClientGlobal


StorageClient

public StorageClient(TrackerServer trackerServer,
                     StorageServer storageServer)
constructor with tracker server and storage server

Parameters:
trackerServer - the tracker server, can be null
storageServer - the storage server, can be null
Method Detail

getErrorCode

public byte getErrorCode()
get the error code of last call

Returns:
the error code of last call

upload_file

public java.lang.String[] upload_file(java.lang.String local_filename,
                                      java.lang.String file_ext_name,
                                      NameValuePair[] meta_list)
                               throws java.io.IOException,
                                      MyException
upload file to storage server (by file name)

Parameters:
local_filename - local filename to upload
file_ext_name - file ext name, do not include dot(.), null to extract ext name from the local filename
meta_list - meta info array
Returns:
2 elements string array if success:
  • results[0]: the group name to store the file
  • results[1]: the new created filename
return null if fail
Throws:
java.io.IOException
MyException

upload_file

protected java.lang.String[] upload_file(java.lang.String group_name,
                                         java.lang.String local_filename,
                                         java.lang.String file_ext_name,
                                         NameValuePair[] meta_list)
                                  throws java.io.IOException,
                                         MyException
upload file to storage server (by file name)

Parameters:
group_name - the group name to upload file to, can be empty
local_filename - local filename to upload
file_ext_name - file ext name, do not include dot(.), null to extract ext name from the local filename
meta_list - meta info array
Returns:
2 elements string array if success:
  • results[0]: the group name to store the file
  • results[1]: the new created filename
return null if fail
Throws:
java.io.IOException
MyException

upload_file

protected java.lang.String[] upload_file(byte cmd,
                                         java.lang.String group_name,
                                         java.lang.String local_filename,
                                         java.lang.String file_ext_name,
                                         NameValuePair[] meta_list)
                                  throws java.io.IOException,
                                         MyException
upload file to storage server (by file name)

Parameters:
cmd - the command
group_name - the group name to upload file to, can be empty
local_filename - local filename to upload
file_ext_name - file ext name, do not include dot(.), null to extract ext name from the local filename
meta_list - meta info array
Returns:
2 elements string array if success:
  • results[0]: the group name to store the file
  • results[1]: the new created filename
return null if fail
Throws:
java.io.IOException
MyException

upload_file

public java.lang.String[] upload_file(byte[] file_buff,
                                      int offset,
                                      int length,
                                      java.lang.String file_ext_name,
                                      NameValuePair[] meta_list)
                               throws java.io.IOException,
                                      MyException
upload file to storage server (by file buff)

Parameters:
file_buff - file content/buff
offset - start offset of the buff
length - the length of buff to upload
file_ext_name - file ext name, do not include dot(.)
meta_list - meta info array
Returns:
2 elements string array if success:
  • results[0]: the group name to store the file
  • results[1]: the new created filename
return null if fail
Throws:
java.io.IOException
MyException

upload_file

public java.lang.String[] upload_file(java.lang.String group_name,
                                      byte[] file_buff,
                                      int offset,
                                      int length,
                                      java.lang.String file_ext_name,
                                      NameValuePair[] meta_list)
                               throws java.io.IOException,
                                      MyException
upload file to storage server (by file buff)

Parameters:
group_name - the group name to upload file to, can be empty
file_buff - file content/buff
offset - start offset of the buff
length - the length of buff to upload
file_ext_name - file ext name, do not include dot(.)
meta_list - meta info array
Returns:
2 elements string array if success:
  • results[0]: the group name to store the file
  • results[1]: the new created filename
return null if fail
Throws:
java.io.IOException
MyException

upload_file

public java.lang.String[] upload_file(byte[] file_buff,
                                      java.lang.String file_ext_name,
                                      NameValuePair[] meta_list)
                               throws java.io.IOException,
                                      MyException
upload file to storage server (by file buff)

Parameters:
file_buff - file content/buff
file_ext_name - file ext name, do not include dot(.)
meta_list - meta info array
Returns:
2 elements string array if success:
  • results[0]: the group name to store the file
  • results[1]: the new created filename
return null if fail
Throws:
java.io.IOException
MyException

upload_file

public java.lang.String[] upload_file(java.lang.String group_name,
                                      byte[] file_buff,
                                      java.lang.String file_ext_name,
                                      NameValuePair[] meta_list)
                               throws java.io.IOException,
                                      MyException
upload file to storage server (by file buff)

Parameters:
group_name - the group name to upload file to, can be empty
file_buff - file content/buff
file_ext_name - file ext name, do not include dot(.)
meta_list - meta info array
Returns:
2 elements string array if success:
  • results[0]: the group name to store the file
  • results[1]: the new created filename
return null if fail
Throws:
java.io.IOException
MyException

upload_file

public java.lang.String[] upload_file(java.lang.String group_name,
                                      long file_size,
                                      UploadCallback callback,
                                      java.lang.String file_ext_name,
                                      NameValuePair[] meta_list)
                               throws java.io.IOException,
                                      MyException
upload file to storage server (by callback)

Parameters:
group_name - the group name to upload file to, can be empty
file_size - the file size
callback - the write data callback object
file_ext_name - file ext name, do not include dot(.)
meta_list - meta info array
Returns:
2 elements string array if success:
  • results[0]: the group name to store the file
  • results[1]: the new created filename
return null if fail
Throws:
java.io.IOException
MyException

upload_file

public java.lang.String[] upload_file(java.lang.String group_name,
                                      java.lang.String master_filename,
                                      java.lang.String prefix_name,
                                      java.lang.String local_filename,
                                      java.lang.String file_ext_name,
                                      NameValuePair[] meta_list)
                               throws java.io.IOException,
                                      MyException
upload file to storage server (by file name, slave file mode)

Parameters:
group_name - the group name of master file
master_filename - the master file name to generate the slave file
prefix_name - the prefix name to generate the slave file
local_filename - local filename to upload
file_ext_name - file ext name, do not include dot(.), null to extract ext name from the local filename
meta_list - meta info array
Returns:
2 elements string array if success:
  • results[0]: the group name to store the file
  • results[1]: the new created filename
return null if fail
Throws:
java.io.IOException
MyException

upload_file

public java.lang.String[] upload_file(java.lang.String group_name,
                                      java.lang.String master_filename,
                                      java.lang.String prefix_name,
                                      byte[] file_buff,
                                      java.lang.String file_ext_name,
                                      NameValuePair[] meta_list)
                               throws java.io.IOException,
                                      MyException
upload file to storage server (by file buff, slave file mode)

Parameters:
group_name - the group name of master file
master_filename - the master file name to generate the slave file
prefix_name - the prefix name to generate the slave file
file_buff - file content/buff
file_ext_name - file ext name, do not include dot(.)
meta_list - meta info array
Returns:
2 elements string array if success:
  • results[0]: the group name to store the file
  • results[1]: the new created filename
return null if fail
Throws:
java.io.IOException
MyException

upload_file

public java.lang.String[] upload_file(java.lang.String group_name,
                                      java.lang.String master_filename,
                                      java.lang.String prefix_name,
                                      byte[] file_buff,
                                      int offset,
                                      int length,
                                      java.lang.String file_ext_name,
                                      NameValuePair[] meta_list)
                               throws java.io.IOException,
                                      MyException
upload file to storage server (by file buff, slave file mode)

Parameters:
group_name - the group name of master file
master_filename - the master file name to generate the slave file
prefix_name - the prefix name to generate the slave file
file_buff - file content/buff
offset - start offset of the buff
length - the length of buff to upload
file_ext_name - file ext name, do not include dot(.)
meta_list - meta info array
Returns:
2 elements string array if success:
  • results[0]: the group name to store the file
  • results[1]: the new created filename
return null if fail
Throws:
java.io.IOException
MyException

upload_file

public java.lang.String[] upload_file(java.lang.String group_name,
                                      java.lang.String master_filename,
                                      java.lang.String prefix_name,
                                      long file_size,
                                      UploadCallback callback,
                                      java.lang.String file_ext_name,
                                      NameValuePair[] meta_list)
                               throws java.io.IOException,
                                      MyException
upload file to storage server (by callback, slave file mode)

Parameters:
group_name - the group name to upload file to, can be empty
master_filename - the master file name to generate the slave file
prefix_name - the prefix name to generate the slave file
file_size - the file size
callback - the write data callback object
file_ext_name - file ext name, do not include dot(.)
meta_list - meta info array
Returns:
2 elements string array if success:
  • results[0]: the group name to store the file
  • results[1]: the new created filename
return null if fail
Throws:
java.io.IOException
MyException

upload_appender_file

public java.lang.String[] upload_appender_file(java.lang.String local_filename,
                                               java.lang.String file_ext_name,
                                               NameValuePair[] meta_list)
                                        throws java.io.IOException,
                                               MyException
upload appender file to storage server (by file name)

Parameters:
local_filename - local filename to upload
file_ext_name - file ext name, do not include dot(.), null to extract ext name from the local filename
meta_list - meta info array
Returns:
2 elements string array if success:
  • results[0]: the group name to store the file
  • results[1]: the new created filename
return null if fail
Throws:
java.io.IOException
MyException

upload_appender_file

protected java.lang.String[] upload_appender_file(java.lang.String group_name,
                                                  java.lang.String local_filename,
                                                  java.lang.String file_ext_name,
                                                  NameValuePair[] meta_list)
                                           throws java.io.IOException,
                                                  MyException
upload appender file to storage server (by file name)

Parameters:
group_name - the group name to upload file to, can be empty
local_filename - local filename to upload
file_ext_name - file ext name, do not include dot(.), null to extract ext name from the local filename
meta_list - meta info array
Returns:
2 elements string array if success:
  • results[0]: the group name to store the file
  • results[1]: the new created filename
return null if fail
Throws:
java.io.IOException
MyException

upload_appender_file

public java.lang.String[] upload_appender_file(byte[] file_buff,
                                               int offset,
                                               int length,
                                               java.lang.String file_ext_name,
                                               NameValuePair[] meta_list)
                                        throws java.io.IOException,
                                               MyException
upload appender file to storage server (by file buff)

Parameters:
file_buff - file content/buff
offset - start offset of the buff
length - the length of buff to upload
file_ext_name - file ext name, do not include dot(.)
meta_list - meta info array
Returns:
2 elements string array if success:
  • results[0]: the group name to store the file
  • results[1]: the new created filename
return null if fail
Throws:
java.io.IOException
MyException

upload_appender_file

public java.lang.String[] upload_appender_file(java.lang.String group_name,
                                               byte[] file_buff,
                                               int offset,
                                               int length,
                                               java.lang.String file_ext_name,
                                               NameValuePair[] meta_list)
                                        throws java.io.IOException,
                                               MyException
upload appender file to storage server (by file buff)

Parameters:
group_name - the group name to upload file to, can be empty
file_buff - file content/buff
offset - start offset of the buff
length - the length of buff to upload
file_ext_name - file ext name, do not include dot(.)
meta_list - meta info array
Returns:
2 elements string array if success:
  • results[0]: the group name to store the file
  • results[1]: the new created filename
return null if fail
Throws:
java.io.IOException
MyException

upload_appender_file

public java.lang.String[] upload_appender_file(byte[] file_buff,
                                               java.lang.String file_ext_name,
                                               NameValuePair[] meta_list)
                                        throws java.io.IOException,
                                               MyException
upload appender file to storage server (by file buff)

Parameters:
file_buff - file content/buff
file_ext_name - file ext name, do not include dot(.)
meta_list - meta info array
Returns:
2 elements string array if success:
  • results[0]: the group name to store the file
  • results[1]: the new created filename
return null if fail
Throws:
java.io.IOException
MyException

upload_appender_file

public java.lang.String[] upload_appender_file(java.lang.String group_name,
                                               byte[] file_buff,
                                               java.lang.String file_ext_name,
                                               NameValuePair[] meta_list)
                                        throws java.io.IOException,
                                               MyException
upload appender file to storage server (by file buff)

Parameters:
group_name - the group name to upload file to, can be empty
file_buff - file content/buff
file_ext_name - file ext name, do not include dot(.)
meta_list - meta info array
Returns:
2 elements string array if success:
  • results[0]: the group name to store the file
  • results[1]: the new created filename
return null if fail
Throws:
java.io.IOException
MyException

upload_appender_file

public java.lang.String[] upload_appender_file(java.lang.String group_name,
                                               long file_size,
                                               UploadCallback callback,
                                               java.lang.String file_ext_name,
                                               NameValuePair[] meta_list)
                                        throws java.io.IOException,
                                               MyException
upload appender file to storage server (by callback)

Parameters:
group_name - the group name to upload file to, can be empty
file_size - the file size
callback - the write data callback object
file_ext_name - file ext name, do not include dot(.)
meta_list - meta info array
Returns:
2 elements string array if success:
  • results[0]: the group name to store the file
  • results[1]: the new created filename
return null if fail
Throws:
java.io.IOException
MyException

append_file

public int append_file(java.lang.String group_name,
                       java.lang.String appender_filename,
                       java.lang.String local_filename)
                throws java.io.IOException,
                       MyException
append file to storage server (by file name)

Parameters:
group_name - the group name of appender file
appender_filename - the appender filename
local_filename - local filename to append
Returns:
0 for success, != 0 for error (error no)
Throws:
java.io.IOException
MyException

append_file

public int append_file(java.lang.String group_name,
                       java.lang.String appender_filename,
                       byte[] file_buff)
                throws java.io.IOException,
                       MyException
append file to storage server (by file buff)

Parameters:
group_name - the group name of appender file
appender_filename - the appender filename
file_buff - file content/buff
Returns:
0 for success, != 0 for error (error no)
Throws:
java.io.IOException
MyException

append_file

public int append_file(java.lang.String group_name,
                       java.lang.String appender_filename,
                       byte[] file_buff,
                       int offset,
                       int length)
                throws java.io.IOException,
                       MyException
append file to storage server (by file buff)

Parameters:
group_name - the group name of appender file
appender_filename - the appender filename
file_buff - file content/buff
offset - start offset of the buff
length - the length of buff to append
Returns:
0 for success, != 0 for error (error no)
Throws:
java.io.IOException
MyException

append_file

public int append_file(java.lang.String group_name,
                       java.lang.String appender_filename,
                       long file_size,
                       UploadCallback callback)
                throws java.io.IOException,
                       MyException
append file to storage server (by callback)

Parameters:
group_name - the group name to append file to
appender_filename - the appender filename
file_size - the file size
callback - the write data callback object
Returns:
0 for success, != 0 for error (error no)
Throws:
java.io.IOException
MyException

modify_file

public int modify_file(java.lang.String group_name,
                       java.lang.String appender_filename,
                       long file_offset,
                       java.lang.String local_filename)
                throws java.io.IOException,
                       MyException
modify appender file to storage server (by file name)

Parameters:
group_name - the group name of appender file
appender_filename - the appender filename
file_offset - the offset of appender file
local_filename - local filename to append
Returns:
0 for success, != 0 for error (error no)
Throws:
java.io.IOException
MyException

modify_file

public int modify_file(java.lang.String group_name,
                       java.lang.String appender_filename,
                       long file_offset,
                       byte[] file_buff)
                throws java.io.IOException,
                       MyException
modify appender file to storage server (by file buff)

Parameters:
group_name - the group name of appender file
appender_filename - the appender filename
file_offset - the offset of appender file
file_buff - file content/buff
Returns:
0 for success, != 0 for error (error no)
Throws:
java.io.IOException
MyException

modify_file

public int modify_file(java.lang.String group_name,
                       java.lang.String appender_filename,
                       long file_offset,
                       byte[] file_buff,
                       int buffer_offset,
                       int buffer_length)
                throws java.io.IOException,
                       MyException
modify appender file to storage server (by file buff)

Parameters:
group_name - the group name of appender file
appender_filename - the appender filename
file_offset - the offset of appender file
file_buff - file content/buff
buffer_offset - start offset of the buff
buffer_length - the length of buff to modify
Returns:
0 for success, != 0 for error (error no)
Throws:
java.io.IOException
MyException

modify_file

public int modify_file(java.lang.String group_name,
                       java.lang.String appender_filename,
                       long file_offset,
                       long modify_size,
                       UploadCallback callback)
                throws java.io.IOException,
                       MyException
modify appender file to storage server (by callback)

Parameters:
group_name - the group name to modify file to
appender_filename - the appender filename
file_offset - the offset of appender file
modify_size - the modify size
callback - the write data callback object
Returns:
0 for success, != 0 for error (error no)
Throws:
java.io.IOException
MyException

do_upload_file

protected java.lang.String[] do_upload_file(byte cmd,
                                            java.lang.String group_name,
                                            java.lang.String master_filename,
                                            java.lang.String prefix_name,
                                            java.lang.String file_ext_name,
                                            long file_size,
                                            UploadCallback callback,
                                            NameValuePair[] meta_list)
                                     throws java.io.IOException,
                                            MyException
upload file to storage server

Parameters:
cmd - the command code
group_name - the group name to upload file to, can be empty
master_filename - the master file name to generate the slave file
prefix_name - the prefix name to generate the slave file
file_ext_name - file ext name, do not include dot(.)
file_size - the file size
callback - the write data callback object
meta_list - meta info array
Returns:
2 elements string array if success:
  • results[0]: the group name to store the file
  • results[1]: the new created filename
return null if fail
Throws:
java.io.IOException
MyException

do_append_file

protected int do_append_file(java.lang.String group_name,
                             java.lang.String appender_filename,
                             long file_size,
                             UploadCallback callback)
                      throws java.io.IOException,
                             MyException
append file to storage server

Parameters:
group_name - the group name of appender file
appender_filename - the appender filename
file_size - the file size
callback - the write data callback object
Returns:
return true for success, false for fail
Throws:
java.io.IOException
MyException

do_modify_file

protected int do_modify_file(java.lang.String group_name,
                             java.lang.String appender_filename,
                             long file_offset,
                             long modify_size,
                             UploadCallback callback)
                      throws java.io.IOException,
                             MyException
modify appender file to storage server

Parameters:
group_name - the group name of appender file
appender_filename - the appender filename
file_offset - the offset of appender file
modify_size - the modify size
callback - the write data callback object
Returns:
return true for success, false for fail
Throws:
java.io.IOException
MyException

delete_file

public int delete_file(java.lang.String group_name,
                       java.lang.String remote_filename)
                throws java.io.IOException,
                       MyException
delete file from storage server

Parameters:
group_name - the group name of storage server
remote_filename - filename on storage server
Returns:
0 for success, none zero for fail (error code)
Throws:
java.io.IOException
MyException

truncate_file

public int truncate_file(java.lang.String group_name,
                         java.lang.String appender_filename)
                  throws java.io.IOException,
                         MyException
truncate appender file to size 0 from storage server

Parameters:
group_name - the group name of storage server
appender_filename - the appender filename
Returns:
0 for success, none zero for fail (error code)
Throws:
java.io.IOException
MyException

truncate_file

public int truncate_file(java.lang.String group_name,
                         java.lang.String appender_filename,
                         long truncated_file_size)
                  throws java.io.IOException,
                         MyException
truncate appender file from storage server

Parameters:
group_name - the group name of storage server
appender_filename - the appender filename
truncated_file_size - truncated file size
Returns:
0 for success, none zero for fail (error code)
Throws:
java.io.IOException
MyException

download_file

public byte[] download_file(java.lang.String group_name,
                            java.lang.String remote_filename)
                     throws java.io.IOException,
                            MyException
download file from storage server

Parameters:
group_name - the group name of storage server
remote_filename - filename on storage server
Returns:
file content/buff, return null if fail
Throws:
java.io.IOException
MyException

download_file

public byte[] download_file(java.lang.String group_name,
                            java.lang.String remote_filename,
                            long file_offset,
                            long download_bytes)
                     throws java.io.IOException,
                            MyException
download file from storage server

Parameters:
group_name - the group name of storage server
remote_filename - filename on storage server
file_offset - the start offset of the file
download_bytes - download bytes, 0 for remain bytes from offset
Returns:
file content/buff, return null if fail
Throws:
java.io.IOException
MyException

download_file

public int download_file(java.lang.String group_name,
                         java.lang.String remote_filename,
                         java.lang.String local_filename)
                  throws java.io.IOException,
                         MyException
download file from storage server

Parameters:
group_name - the group name of storage server
remote_filename - filename on storage server
local_filename - filename on local
Returns:
0 success, return none zero errno if fail
Throws:
java.io.IOException
MyException

download_file

public int download_file(java.lang.String group_name,
                         java.lang.String remote_filename,
                         long file_offset,
                         long download_bytes,
                         java.lang.String local_filename)
                  throws java.io.IOException,
                         MyException
download file from storage server

Parameters:
group_name - the group name of storage server
remote_filename - filename on storage server
file_offset - the start offset of the file
download_bytes - download bytes, 0 for remain bytes from offset
local_filename - filename on local
Returns:
0 success, return none zero errno if fail
Throws:
java.io.IOException
MyException

download_file

public int download_file(java.lang.String group_name,
                         java.lang.String remote_filename,
                         DownloadCallback callback)
                  throws java.io.IOException,
                         MyException
download file from storage server

Parameters:
group_name - the group name of storage server
remote_filename - filename on storage server
callback - call callback.recv() when data arrive
Returns:
0 success, return none zero errno if fail
Throws:
java.io.IOException
MyException

download_file

public int download_file(java.lang.String group_name,
                         java.lang.String remote_filename,
                         long file_offset,
                         long download_bytes,
                         DownloadCallback callback)
                  throws java.io.IOException,
                         MyException
download file from storage server

Parameters:
group_name - the group name of storage server
remote_filename - filename on storage server
file_offset - the start offset of the file
download_bytes - download bytes, 0 for remain bytes from offset
callback - call callback.recv() when data arrive
Returns:
0 success, return none zero errno if fail
Throws:
java.io.IOException
MyException

get_metadata

public NameValuePair[] get_metadata(java.lang.String group_name,
                                    java.lang.String remote_filename)
                             throws java.io.IOException,
                                    MyException
get all metadata items from storage server

Parameters:
group_name - the group name of storage server
remote_filename - filename on storage server
Returns:
meta info array, return null if fail
Throws:
java.io.IOException
MyException

set_metadata

public int set_metadata(java.lang.String group_name,
                        java.lang.String remote_filename,
                        NameValuePair[] meta_list,
                        byte op_flag)
                 throws java.io.IOException,
                        MyException
set metadata items to storage server

Parameters:
group_name - the group name of storage server
remote_filename - filename on storage server
meta_list - meta item array
op_flag - flag, can be one of following values:
  • ProtoCommon.STORAGE_SET_METADATA_FLAG_OVERWRITE: overwrite all old metadata items
  • ProtoCommon.STORAGE_SET_METADATA_FLAG_MERGE: merge, insert when the metadata item not exist, otherwise update it
Returns:
0 for success, !=0 fail (error code)
Throws:
java.io.IOException
MyException

get_file_info

public FileInfo get_file_info(java.lang.String group_name,
                              java.lang.String remote_filename)
                       throws java.io.IOException,
                              MyException
get file info decoded from the filename, fetch from the storage if necessary

Parameters:
group_name - the group name
remote_filename - the filename
Returns:
FileInfo object for success, return null for fail
Throws:
java.io.IOException
MyException

query_file_info

public FileInfo query_file_info(java.lang.String group_name,
                                java.lang.String remote_filename)
                         throws java.io.IOException,
                                MyException
get file info from storage server

Parameters:
group_name - the group name of storage server
remote_filename - filename on storage server
Returns:
FileInfo object for success, return null for fail
Throws:
java.io.IOException
MyException

newWritableStorageConnection

protected boolean newWritableStorageConnection(java.lang.String group_name)
                                        throws java.io.IOException,
                                               MyException
check storage socket, if null create a new connection

Parameters:
group_name - the group name to upload file to, can be empty
Returns:
true if create a new connection
Throws:
java.io.IOException
MyException

newReadableStorageConnection

protected boolean newReadableStorageConnection(java.lang.String group_name,
                                               java.lang.String remote_filename)
                                        throws java.io.IOException,
                                               MyException
check storage socket, if null create a new connection

Parameters:
group_name - the group name of storage server
remote_filename - filename on storage server
Returns:
true if create a new connection
Throws:
java.io.IOException
MyException

newUpdatableStorageConnection

protected boolean newUpdatableStorageConnection(java.lang.String group_name,
                                                java.lang.String remote_filename)
                                         throws java.io.IOException,
                                                MyException
check storage socket, if null create a new connection

Parameters:
group_name - the group name of storage server
remote_filename - filename on storage server
Returns:
true if create a new connection
Throws:
java.io.IOException
MyException

send_package

protected void send_package(byte cmd,
                            java.lang.String group_name,
                            java.lang.String remote_filename)
                     throws java.io.IOException
send package to storage server

Parameters:
cmd - which command to send
group_name - the group name of storage server
remote_filename - filename on storage server
Throws:
java.io.IOException

send_download_package

protected void send_download_package(java.lang.String group_name,
                                     java.lang.String remote_filename,
                                     long file_offset,
                                     long download_bytes)
                              throws java.io.IOException
send package to storage server

Parameters:
group_name - the group name of storage server
remote_filename - filename on storage server
file_offset - the start offset of the file
download_bytes - download bytes
Throws:
java.io.IOException