Browse Source

增加read过程的TODO

gitlink
17BaoH 2 years ago
parent
commit
9c6d6b840c
2 changed files with 9 additions and 2 deletions
  1. +5
    -0
      clientCommand.go
  2. +4
    -2
      main.go

+ 5
- 0
clientCommand.go View File

@@ -29,6 +29,7 @@ const (
packetSizeInBytes = 10
)

//TODO xh:调整函数顺序,以及函数名大小写
func Move(bucketName string, objectName string, destination string) {
//将bucketName, objectName, destination发给协调端
fmt.Println("move " + bucketName + "/" + objectName + " to " + destination)
@@ -141,6 +142,7 @@ func Read(localFilePath string, bucketName string, objectName string) {
UserId: userId,
}
c1, _ := json.Marshal(command1)
//TODO xh: 用常量定义"02"等
b1 := append([]byte("02"), c1...)
fmt.Println(b1)
rabbit1 := rabbitmq.NewRabbitMQSimple("coorQueue")
@@ -160,6 +162,7 @@ func Read(localFilePath string, bucketName string, objectName string) {
wg := sync.WaitGroup{}
wg.Add(1)
go func() {
//TODO xh: 增加消息队列等待超时机制(配置文件指定最长等待时间,超时报错返回)
for d := range msgs {
_ = json.Unmarshal(d.Body, &res1)
ips = res1.Ips
@@ -181,6 +184,7 @@ func Read(localFilePath string, bucketName string, objectName string) {
rabbit1.Destroy()
rabbit2.Destroy()
switch redundancy {
//TODO xh: redundancy换为bool型,用常量EC表示ec,REP表示rep
case "rep":
repRead(fileSizeInBytes, ips[0], hashs[0], localFilePath)
case "ec":
@@ -203,6 +207,7 @@ func repRead(fileSizeInBytes int64, ip string, repHash string, localFilePath str
if err != nil {
panic(err)
}
//TODO xh:删除assets,改为读到当前目录与localFilePath的叠加路径
fURL := filepath.Join(filepath.Dir(fDir), "assets")
_, err = os.Stat(fURL)
if os.IsNotExist(err) {


+ 4
- 2
main.go View File

@@ -27,7 +27,7 @@ func main() {
for i := 0; i < arg_num; i++ {
fmt.Println(args[i])
}
//TODO: 改为交互式client,输入用户名及秘钥后进入交互界面
switch args[1] {
case "ecWrite":
EcWrite(args[2], args[3], args[4], args[5])
@@ -45,11 +45,13 @@ func main() {
Move(args[2], args[3], args[4]) //bucket object destination
}
/*
TO DO:
TO DO future:
1. ls命令,显示用户指定桶下的所有对象,及相关的元数据
2. rm命令,用户指定bucket和object名,执行删除操作
3. update命令,用户发起对象更新命令,查询元数据,判断对象的冗余方式,删除旧对象(unpin所有的副本或编码块),写入新对象
4. ipfsStat命令,查看本地有无ipfsdaemon,ipfs目录的使用率
5. ipfsFlush命令,unpin本地ipfs目录中的所有cid(block)
6. 改为交互式client,输入用户名及秘钥后进入交互界面
7. 支持纯缓存类型的IPFS节点,数据一律存在后端存储服务中
*/
}

Loading…
Cancel
Save