ディスクに保存せずにGoでmultipart.Partからmultipart.Fileを取得する方法は?

WBOY
リリース: 2024-02-08 22:03:09
転載
653 人が閲覧しました

ディスクに保存せずにGoでmultipart.Partからmultipart.Fileを取得する方法は?

Go 言語の開発プロセス中、編集者 Apple は、multipart パッケージを使用してフォーム アップロード ファイルを処理するときに、multipart.Part オブジェクトから multipart.File を取得する必要性によく遭遇します。ただし、標準ライブラリの multipart パッケージは、multipart.File を取得するメソッドを直接提供しませんが、デフォルトでファイルをディスクに保存します。では、この制限を回避して、multipart.Part から直接 multipart.File を取得する方法はあるのでしょうか?次にGoでmultipart.Partからmultipart.Fileをディスクに保存せずに取得する方法を紹介します。

質問の内容

私の 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 を使用して、ファイルのバイトを読み取るか、ファイルをコピーします。 partio.Reader を実装しているため、ファイルのように読み取ることができることに注意してください。

以上がディスクに保存せずにGoでmultipart.Partからmultipart.Fileを取得する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:stackoverflow.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!