com.luhuiguo.fastdfs.proto.storage.internal.StorageAppendFileRequest Maven / Gradle / Ivy
The newest version!
package com.luhuiguo.fastdfs.proto.storage.internal;
import java.io.InputStream;
import java.nio.charset.Charset;
import com.luhuiguo.fastdfs.proto.CmdConstants;
import com.luhuiguo.fastdfs.proto.FdfsRequest;
import com.luhuiguo.fastdfs.proto.ProtoHead;
import com.luhuiguo.fastdfs.proto.mapper.DynamicFieldType;
import com.luhuiguo.fastdfs.proto.mapper.FdfsColumn;
/**
* 文件上传命令
*
* @author tobato
*
*/
public class StorageAppendFileRequest extends FdfsRequest {
/** 文件路径长度 */
@FdfsColumn(index = 0)
private long pathSize;
/** 发送文件长度 */
@FdfsColumn(index = 1)
private long fileSize;
/** 文件路径 */
@FdfsColumn(index = 2, dynamicField = DynamicFieldType.allRestByte)
private String path;
/**
* 构造函数
*
* @param inputStream
* @param fileExtName
* @param fileSize
* @param storeIndex
* @param isAppenderFile
*/
public StorageAppendFileRequest(InputStream inputStream, long fileSize, String path) {
super();
this.inputFile = inputStream;
this.fileSize = fileSize;
this.path = path;
head = new ProtoHead(CmdConstants.STORAGE_PROTO_CMD_APPEND_FILE);
}
/**
* 打包参数
*/
@Override
public byte[] encodeParam(Charset charset) {
// 运行时参数在此计算值
this.pathSize = path.getBytes(charset).length;
return super.encodeParam(charset);
}
public long getPathSize() {
return pathSize;
}
public void setPathSize(long pathSize) {
this.pathSize = pathSize;
}
public String getPath() {
return path;
}
public void setPath(String path) {
this.path = path;
}
public void setFileSize(long fileSize) {
this.fileSize = fileSize;
}
@Override
public long getFileSize() {
return fileSize;
}
@Override
public String toString() {
return "StorageAppendFileRequest [pathSize=" + pathSize + ", fileSize=" + fileSize + ", path=" + path + "]";
}
}