디스크에 저장하지 않고 Go의 multipart.Part에서 multipart.File을 얻는 방법은 무엇입니까?

WBOY
풀어 주다: 2024-02-08 22:03:09
앞으로
653명이 탐색했습니다.

디스크에 저장하지 않고 Go의 multipart.Part에서 multipart.File을 얻는 방법은 무엇입니까?

Go 언어 개발 과정에서 Apple 편집자 Apple은 양식 업로드 파일을 처리하기 위해 multipart 패키지를 사용할 때 multipart.Part 개체에서 multipart.File을 가져와야 하는 경우가 종종 있습니다. 그러나 표준 라이브러리의 멀티파트 패키지는 multipart.File을 얻는 방법을 직접 제공하지 않고 기본적으로 파일을 디스크에 저장합니다. 그렇다면 이 제한을 우회하고 multipart.Part에서 직접 multipart.File을 가져올 수 있는 방법이 있습니까? 다음으로 디스크에 저장하지 않고 Go에서 multipart.Part로부터 multipart.File을 얻는 방법을 소개하겠습니다.

질문 내용

my go API에는 아래와 같이 r.Body 中提取 multipart.File에서 전달하여 잘 작동하던 함수가 있습니다

으아악

저는 multipart.File를 사용하여 아래와 같이 minio 클라이언트를 사용하여 s3 API에 업로드합니다

으아악

이제 추가 양식 데이터를 추가했으므로 더 이상 r.Body를 사용하여 이 작업을 수행할 수 없는 것 같습니다. 아래 코드에 표시된 것처럼 "양식 파일을 검색하는 중 오류가 발생했습니다"라는 메시지가 나타납니다.

이 질문을 바탕으로 multipart.Part에서 양식 데이터를 가져오기 위해 MultipartReader를 구현했습니다.

부분에는 multipart.File이 없으므로 가능하면 디스크에 쓰고 다시 읽지 않고 해당 부분을 구현해야 합니다.

이것은 내 코드입니다

file, handler, err := r.FormFile("file")
로그인 후 복사

해결 방법

이미 양식의 일부를 스트리밍하고 있으므로 지금은 FormFile,您必须自己读取该文件。使用 part.Read 读取文件的字节,或者复制文件等。请注意,part 实现了 io.Reader에 전화할 수 없으므로 파일처럼 읽을 수 있습니다.

위 내용은 디스크에 저장하지 않고 Go의 multipart.Part에서 multipart.File을 얻는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:stackoverflow.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!