>  기사  >  백엔드 개발  >  gin을 사용할 때 하나의 프로세스로 다른 서버로 파일을 보내는 방법은 무엇입니까?

gin을 사용할 때 하나의 프로세스로 다른 서버로 파일을 보내는 방법은 무엇입니까?

WBOY
WBOY앞으로
2024-02-06 08:00:061008검색

使用 gin 时如何将文件发送到一个进程中的不同服务器?

질문 내용

POST 요청을 생성하여 다른 서버로 보내려고 합니다. 내 프로세스에서는 3개의 POST를 보내려고 합니다. 하나는 첫 번째 서버로, 나머지는 다른 서버로 보냅니다. p>

하지만 첫 번째 POST 요청에만 작동하고 나머지 요청에서는 200개의 코드를 얻지만 파일은 여전히 ​​비어 있습니다. http 연결에 익숙하지 않습니다. 프로그램을 수정하려면 어떻게 해야 합니까? 저를 도와주시면 정말 감사하겠습니다!

파일을 받는 기능입니다.

으아악

요청을 생성하고 보내는 기능입니다

으아악

아직 작동하지 않는 기능이 있어요

func ReceivePublicKey() *gin.Engine {
    router := gin.Default()
    router.MaxMultipartMemory = 8 << 20
    //router.Static("/", "./static")
    router.POST("/receive", func(context *gin.Context) {
        file, _ := context.FormFile("file")
        log.Println(file.Filename)
        dst := "./" + file.Filename
        context.SaveUploadedFile(file, dst)
        context.String(http.StatusOK, fmt.Sprintf("'%s' uploaded!", file.Filename))
        context.String(200, "server: receive publicKey successfully!")
    })
    return router
}

정답


자 이제 실수를 찾았습니다. 먼저 파일 크기를 확인하지 않았는데, 빈 파일을 저장할 때 200 코드가 나오는 이유가 설명됩니다. 두 번째는 IotInit()에서 userId를 가져옵니다. 저는 io.Copy()를 사용하고 파일 포인터가 파일 끝을 가리키도록 만들었습니다. 이는 "public.pem"이 비어 있는 이유를 설명합니다. 요청에 아무것도 복사하지 않습니다. 몸 . 또한 POST 요청을 생성할 때 io.Copy()를 사용하고 있는데 "private.pem"도 비어 있을 수 있습니다.

위 내용은 gin을 사용할 때 하나의 프로세스로 다른 서버로 파일을 보내는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제