改用gin之后上传接口有问题 无法获取到上传服务器的IP

来源:10-7 编码实战: 基于Gin改造用户service(2)

noblenooble

2020-04-26

图片描述
这里用gin改造了上传接口发现upload handle 无法获取到上传服务器的IP

图片描述

图片描述
然后在upload.html 里面看到了uploadEntry 但是不知道是从哪里传过去的

写回答

1回答

xiaomo

2020-04-26

同学你好,

(1)看看登录接口返回的数据里具体内容,返回结果里应该要包含upEntry这个参数。具体可以检查https://git.imooc.com/coding-323/filestore-server/src/charter10/static/view/signin.html里的内容:

<script lang="javascript">
  function onSignin() {
    var username = document.getElementById('username');
    var password = document.getElementById('password');
    $.ajax({
      url: "/user/signin",
      type: "POST",
      data: {
        "username": username.value,
        "password": password.value
      },
      error: function (err) {
        alert(err);
      },
      success: function (body) {
        localStorage.setItem("token", body.data.Token)
        localStorage.setItem("username", body.data.Username)
        // 增加上传入口ip:port
        localStorage.setItem("uploadEntry", body.data.UploadEntry);
        // 增加下载入口ip:port
        localStorage.setItem("downloadEntry", body.data.DownloadEntry);
        window.location.href = body.data.Location;
      }
    });
  }
</script>

看下这个

localStorage.setItem("uploadEntry", body.data.UploadEntry);

确认写进localStorage的uploadEntry是否有效。


(2)可以在https://git.imooc.com/coding-323/filestore-server/src/charter10/service/apigw/handler/user.go里的

	// 动态获取上传入口地址
	upEntryResp, err := upCli.UploadEntry(context.TODO(), &upProto.ReqEntry{})
	if err != nil {
		log.Println(err.Error())
	} else if upEntryResp.Code != cmn.StatusOK {
		log.Println(upEntryResp.Message)
	}

这个位置看看upEntryResp具体的数据有没问题。

0
1
noblenooble
看来先要通过micro service api gateway 才能访问 谢谢老师
2020-04-26
共1条回复

Go实战仿百度云盘-实现企业级分布式云存储系统

紧随“云时代”技术潮流,分布式云存储系统,做第一代云程序员

1077 学习 · 494 问题

查看课程