Documentation
¶
Index ¶
- Constants
- func GetPullTaskByTaskId(rj *model.RpcJson, w http.ResponseWriter, r *http.Request) (res []byte, err error)
- func GetPushTaskByTaskId(rj *model.RpcJson, w http.ResponseWriter, r *http.Request) (res []byte, err error)
- func RegisterRPC()
- func Start(transferManger *TransferManger)
- func TransferFilePullTaskDel(rj *model.RpcJson, w http.ResponseWriter, r *http.Request) (res []byte, err error)
- func TransferFilePullTaskList(rj *model.RpcJson, w http.ResponseWriter, r *http.Request) (res []byte, err error)
- func TransferFilePullTaskStart(rj *model.RpcJson, w http.ResponseWriter, r *http.Request) (res []byte, err error)
- func TransferFilePullTaskStop(rj *model.RpcJson, w http.ResponseWriter, r *http.Request) (res []byte, err error)
- func TransferNewPullTask(rj *model.RpcJson, w http.ResponseWriter, r *http.Request) (res []byte, err error)
- func TransferNewPushTask(rj *model.RpcJson, w http.ResponseWriter, r *http.Request) (res []byte, err error)
- func TransferPullAddrWhiteList(rj *model.RpcJson, w http.ResponseWriter, r *http.Request) (res []byte, err error)
- func TransferPullAddrWhiteListAdd(rj *model.RpcJson, w http.ResponseWriter, r *http.Request) (res []byte, err error)
- func TransferPullAddrWhiteListDel(rj *model.RpcJson, w http.ResponseWriter, r *http.Request) (res []byte, err error)
- func TransferPullTaskIsAutoGet(rj *model.RpcJson, w http.ResponseWriter, r *http.Request) (res []byte, err error)
- func TransferPullTaskIsAutoSet(rj *model.RpcJson, w http.ResponseWriter, r *http.Request) (res []byte, err error)
- func TransferPushTaskList(rj *model.RpcJson, w http.ResponseWriter, r *http.Request) (res []byte, err error)
- func TransferPushTaskSharingDirs(rj *model.RpcJson, w http.ResponseWriter, r *http.Request) (res []byte, err error)
- func TransferPushTaskSharingDirsAdd(rj *model.RpcJson, w http.ResponseWriter, r *http.Request) (res []byte, err error)
- func TransferPushTaskSharingDirsDel(rj *model.RpcJson, w http.ResponseWriter, r *http.Request) (res []byte, err error)
- type FileInfo
- type FileinfoVO
- type PullTask
- type PushTask
- func (t *PushTask) CreatePushTask() (*TransferMsg, error)
- func (t *PushTask) TransferPullAddrWhiteList() (whiteList []*nodeStore.AddressNet, err error)
- func (t *PushTask) TransferPullAddrWhiteListAdd(addr nodeStore.AddressNet) error
- func (t *PushTask) TransferPullAddrWhiteListDel(addr nodeStore.AddressNet) error
- func (t *PushTask) TransferPushTaskSharingDirs() (sharingDirs map[string]string, err error)
- func (t *PushTask) TransferPushTaskSharingDirsAdd(dir string) error
- func (t *PushTask) TransferPushTaskSharingDirsDel(dir string) error
- type TransferManger
- func (this *TransferManger) FileSlicePush(c engine.Controller, msg engine.Packet, message *message_center.Message)
- func (this *TransferManger) FileSlicePush_recv(c engine.Controller, msg engine.Packet, message *mc.Message)
- func (this *TransferManger) GetListeningPullFinishSignal() (string, chan *PullTask)
- func (this *TransferManger) GetListeningPushFinishSignal() (string, chan *TransferMsg)
- func (this *TransferManger) GetPullTaskByTaskId(taskId uint64) (*PullTask, error)
- func (this *TransferManger) GetPushTaskByTaskId(taskId uint64) (*PushTask, error)
- func (this *TransferManger) Load()
- func (this *TransferManger) NewPullTask(source, path string, from nodeStore.AddressNet) error
- func (this *TransferManger) NewPushTask(path string, to nodeStore.AddressNet) (*PushTask, error)
- func (this *TransferManger) PullTaskDel(taskId uint64) error
- func (this *TransferManger) PullTaskIsAutoGet() (bool, error)
- func (this *TransferManger) PullTaskIsAutoSet(auto bool) error
- func (this *TransferManger) PullTaskList() []*PullTask
- func (this *TransferManger) PullTaskStart(taskId uint64, path string) error
- func (this *TransferManger) PullTaskStop(taskId uint64) error
- func (this *TransferManger) PushTaskList() []*PushTask
- func (this *TransferManger) RecvNewPullTask(c engine.Controller, msg engine.Packet, message *message_center.Message)
- func (this *TransferManger) RecvNewPullTask_recv(c engine.Controller, msg engine.Packet, message *mc.Message)
- func (this *TransferManger) RecvNewPushTask(c engine.Controller, msg engine.Packet, message *message_center.Message)
- func (this *TransferManger) RecvNewPushTask_recv(c engine.Controller, msg engine.Packet, message *mc.Message)
- func (this *TransferManger) ReturnListeningPullFinishSignal(id string)
- func (this *TransferManger) ReturnListeningPushFinishSignal(id string)
- func (this *TransferManger) TransferPullAddrWhiteList() (list []string, err error)
- func (this *TransferManger) TransferPullAddrWhiteListAdd(addr nodeStore.AddressNet) error
- func (this *TransferManger) TransferPullAddrWhiteListDel(addr nodeStore.AddressNet) error
- func (this *TransferManger) TransferPushTaskSharingDirs() (sharingDirs map[string]string, err error)
- func (this *TransferManger) TransferPushTaskSharingDirsAdd(dir string) error
- func (this *TransferManger) TransferPushTaskSharingDirsDel(dir string) error
- type TransferMsg
Constants ¶
const ( MinLenth int64 = 100 * 1024 //每次传最小(100kb) MaxLenth int64 = 20 * 1024 * 1024 //每次传输最大(20M) Transfer_slice_max_time_diff int64 = 100 //每次传输最大时间差阀值(100ms) ErrNum int = 5 //传输失败重试次数 5次 Second int64 = 1 //传输速度统计时间间隔 1秒 Recfilepath = "files" Transferlog_push_task_db_key = "transfer_push_task_db_key" Transferlog_pull_task_db_key = "transfer_pull_task_db_key" Transfer_push_task_id_max = "transfer_push_task_id_max" Transfer_pull_task_id_max = "transfer_pull_task_id_max" Transfer_task_expiration_interval = 24 * 60 * 60 * time.Second //任务有效期24小时 Transfer_push_task_sharing_dirs = "transfer_push_task_sharing_dirs" // 共享文件夹 Transfer_pull_addr_white_list = "transfer_pull_addr_white_list" //有权限拉取文件的地址白名单 Transfer_pull_task_if_atuo_db_key = "transfer_pull_task_if_atuo_db_key" Transfer_p2p_mgs_timeout = 5 * time.Second //p2p消息超时时间为5s )
const ( Transfer_pull_task_stautus_pending_confirmation = "pendingConfirmation" //任务待确认 Transfer_pull_task_stautus_running = "running" // 运行中 Transfer_pull_task_stautus_stop = "stop" // 已停止 )
const (
NameError = 4005
)
Variables ¶
This section is empty.
Functions ¶
func GetPullTaskByTaskId ¶
func GetPushTaskByTaskId ¶
func RegisterRPC ¶
func RegisterRPC()
func Start ¶
func Start(transferManger *TransferManger)
func TransferFilePullTaskDel ¶
func TransferNewPullTask ¶
func TransferNewPushTask ¶
func TransferPushTaskList ¶
Types ¶
type FileInfo ¶
type FileInfo struct { From nodeStore.AddressNet `json:"from"` //传输者 To nodeStore.AddressNet `json:"to"` //接收者 Name string `json:"name"` //原始文件名 Hash []byte `json:"hash"` Size int64 `json:"size"` Path string `json:"path"` Index int64 `json:"index"` //下一次要从哪个偏移量 Data []byte `json:"data"` Speed map[string]int64 `json:"speed"` //传输速度统计 Rate int64 `json:"rate"` }
func (*FileInfo) CheckFileHash ¶
type FileinfoVO ¶
type PullTask ¶
type PullTask struct { PushTaskID uint64 `json:"push_task_id"` PullTaskID uint64 `json:"pull_task_id"` FileInfo *FileInfo `json:"file_info"` Status string `json:"status"` //ture 为传输中 false为暂停中 Fault string `json:"fault"` //传输文件过程中的异常 // contains filtered or unexported fields }
拉取文件任务
func (*PullTask) CreatePullTask ¶
func (*PullTask) PullTaskIsAutoGet ¶
func (*PullTask) PullTaskRecordList ¶
type PushTask ¶
type PushTask struct { PushTaskID uint64 `json:"push_task_id"` PullTaskID uint64 `json:"pull_task_id"` To nodeStore.AddressNet `json:"to"` //接收者 Path string `json:"path"` Hash []byte `json:"hash"` ExpirationTime int64 `json:"expiration_time"` Size int64 `json:"size"` Index int64 `json:"index"` //下一次要从哪个偏移量 Rate int64 `json:"rate"` }
func (*PushTask) CreatePushTask ¶
func (t *PushTask) CreatePushTask() (*TransferMsg, error)
创建一个push任务
func (*PushTask) TransferPullAddrWhiteList ¶
func (t *PushTask) TransferPullAddrWhiteList() (whiteList []*nodeStore.AddressNet, err error)
func (*PushTask) TransferPullAddrWhiteListAdd ¶
func (t *PushTask) TransferPullAddrWhiteListAdd(addr nodeStore.AddressNet) error
func (*PushTask) TransferPullAddrWhiteListDel ¶
func (t *PushTask) TransferPullAddrWhiteListDel(addr nodeStore.AddressNet) error
func (*PushTask) TransferPushTaskSharingDirs ¶
func (*PushTask) TransferPushTaskSharingDirsAdd ¶
func (*PushTask) TransferPushTaskSharingDirsDel ¶
type TransferManger ¶
type TransferManger struct { PushTask *PushTask PullTask *PullTask TaskMap *sync.Map PushTaskIDMax uint64 PullTaskIDMax uint64 PullIsAuto bool //是否自动 // contains filtered or unexported fields }
var TransferMangerStatic *TransferManger
var TransferTaskManger *TransferManger
func NewTransferManger ¶
func NewTransferManger(area *libp2parea.Area, transfer_push, transfer_push_recv, transfer_pull, transfer_pull_recv, transfer_new_pull, transfer_new_pull_recv uint64) *TransferManger
func (*TransferManger) FileSlicePush ¶
func (this *TransferManger) FileSlicePush(c engine.Controller, msg engine.Packet, message *message_center.Message)
分片推送
func (*TransferManger) FileSlicePush_recv ¶
func (this *TransferManger) FileSlicePush_recv(c engine.Controller, msg engine.Packet, message *mc.Message)
func (*TransferManger) GetListeningPullFinishSignal ¶
func (this *TransferManger) GetListeningPullFinishSignal() (string, chan *PullTask)
获取文件接收完成信号
func (*TransferManger) GetListeningPushFinishSignal ¶
func (this *TransferManger) GetListeningPushFinishSignal() (string, chan *TransferMsg)
获取文件发送完成信号
func (*TransferManger) GetPullTaskByTaskId ¶
func (this *TransferManger) GetPullTaskByTaskId(taskId uint64) (*PullTask, error)
GetPullTaskByTaskId @Description: 根据拉取任务id获取拉取任务 @receiver this @param taskId 拉取任务 @return *PullTask @return error
func (*TransferManger) GetPushTaskByTaskId ¶
func (this *TransferManger) GetPushTaskByTaskId(taskId uint64) (*PushTask, error)
GetPushTaskByTaskId @Description: 根据推送任务id获取推送任务 @receiver this @param taskId 推送任务id @return *PushTask @return error
func (*TransferManger) NewPullTask ¶
func (this *TransferManger) NewPullTask(source, path string, from nodeStore.AddressNet) error
NewPullTask @Description: 发起一个拉取文件任务 @receiver this @param source 资源相对路径如:files/text.txt @param path 相对路径如:files/text.txt @param from 文件来源节点地址 @return error
func (*TransferManger) NewPushTask ¶
func (this *TransferManger) NewPushTask(path string, to nodeStore.AddressNet) (*PushTask, error)
NewPushTask @Description: 传输文件申请(发起一个推送任务) @receiver this @param path @param to @return error
func (*TransferManger) PullTaskDel ¶
func (this *TransferManger) PullTaskDel(taskId uint64) error
PullTaskDel @Description: 拉取任务删除 @receiver this @param taskId 拉取任务id @return ok @return err
func (*TransferManger) PullTaskIsAutoGet ¶
func (this *TransferManger) PullTaskIsAutoGet() (bool, error)
PullTaskIsAutoGet @Description: 获取是否自动拉取状态 @receiver this @return bool ture开启自动拉取 @return error
func (*TransferManger) PullTaskIsAutoSet ¶
func (this *TransferManger) PullTaskIsAutoSet(auto bool) error
PullTaskIsAutoSet @Description: 设置是否自动拉取 @receiver this @param auto ture开启自动拉取 @return error
func (*TransferManger) PullTaskList ¶
func (this *TransferManger) PullTaskList() []*PullTask
PullTaskList @Description: 拉取任务列表 @receiver this @return []*PullTask
func (*TransferManger) PullTaskStart ¶
func (this *TransferManger) PullTaskStart(taskId uint64, path string) error
PullTaskStart @Description: 拉取任务开始 @receiver this @param taskId 拉取任务id @return ok @return err
func (*TransferManger) PullTaskStop ¶
func (this *TransferManger) PullTaskStop(taskId uint64) error
PullTaskStop @Description: 拉取任务停止 @receiver this @param taskId 拉取任务id @return ok @return err
func (*TransferManger) PushTaskList ¶
func (this *TransferManger) PushTaskList() []*PushTask
PushTaskList @Description: 推送任务列表 @receiver this @return map[uint64]*PushTask
func (*TransferManger) RecvNewPullTask ¶
func (this *TransferManger) RecvNewPullTask(c engine.Controller, msg engine.Packet, message *message_center.Message)
接收一个Pull任务申请,并创建对应的push任务
func (*TransferManger) RecvNewPullTask_recv ¶
func (this *TransferManger) RecvNewPullTask_recv(c engine.Controller, msg engine.Packet, message *mc.Message)
func (*TransferManger) RecvNewPushTask ¶
func (this *TransferManger) RecvNewPushTask(c engine.Controller, msg engine.Packet, message *message_center.Message)
接收传输文件申请并创建pull任务
func (*TransferManger) RecvNewPushTask_recv ¶
func (this *TransferManger) RecvNewPushTask_recv(c engine.Controller, msg engine.Packet, message *mc.Message)
func (*TransferManger) ReturnListeningPullFinishSignal ¶
func (this *TransferManger) ReturnListeningPullFinishSignal(id string)
归还删除接收文件完成信号
func (*TransferManger) ReturnListeningPushFinishSignal ¶
func (this *TransferManger) ReturnListeningPushFinishSignal(id string)
归还删除发送文件完成信号
func (*TransferManger) TransferPullAddrWhiteList ¶
func (this *TransferManger) TransferPullAddrWhiteList() (list []string, err error)
TransferPullAddrWhiteList @Description: 授权白名单地址列表 @receiver this @return whiteList @return err
func (*TransferManger) TransferPullAddrWhiteListAdd ¶
func (this *TransferManger) TransferPullAddrWhiteListAdd(addr nodeStore.AddressNet) error
TransferPullAddrWhiteListAdd @Description: 授权白名单地址添加 @receiver this @param addr @return error
func (*TransferManger) TransferPullAddrWhiteListDel ¶
func (this *TransferManger) TransferPullAddrWhiteListDel(addr nodeStore.AddressNet) error
TransferPullAddrWhiteListDel @Description: 授权白名单地址删除 @receiver this @param addr @return error
func (*TransferManger) TransferPushTaskSharingDirs ¶
func (this *TransferManger) TransferPushTaskSharingDirs() (sharingDirs map[string]string, err error)
TransferPushTaskSharingDirs @Description: 共享目录列表 @receiver this @return sharingDirs @return err
func (*TransferManger) TransferPushTaskSharingDirsAdd ¶
func (this *TransferManger) TransferPushTaskSharingDirsAdd(dir string) error
TransferPushTaskSharingDirsAdd @Description: 共享目录添加 @receiver this @param dir 目录绝对路径 @return error
func (*TransferManger) TransferPushTaskSharingDirsDel ¶
func (this *TransferManger) TransferPushTaskSharingDirsDel(dir string) error
TransferPushTaskSharingDirsDel @Description: 共享目录删除 @receiver this @param dir 目录绝对路径 @return error