PUTは、ストリームと進行状況を含むファイルのバイト範囲をアップロードします

Thomas Szabo:

Goを使い始めたばかりで、助けが必要です。ファイルから特定の範囲のバイトをアップロードしたいと思います。

私はすでにバイトをバッファに読み込むことでこれを達成しました。ただし、これによりメモリ使用量が増加します。バイトをメモリに読み込むのではなく、アップロード中にそれらをストリーミングして、アップロードの進行状況を確認します。私はNode.jsでこのようなことをしましたが、パズルのピースをGoにまとめるのに苦労しました。私が今持っているコードは次のようになります:

func uploadChunk(id, mimeType, uploadURL, filePath string, offset, size uint) {
    // open file
    file, err := os.Open(filePath)
    panicCheck(err, ErrorFileRead) // custom error handler
    defer file.Close()

    // move to the proper byte
    file.Seek(int64(offset), 0)

    // read byte chunk into buffer
    buffer := make([]byte, size)
    file.Read(buffer)
    fileReader := bytes.NewReader(buffer)

    request, err := http.NewRequest(http.MethodPut, uploadURL, fileReader)

    client := &http.Client{
        Timeout: time.Second * 10,
    }

    response, err := client.Do(request)
    panicCheck(err, ErrorFileRead)

    defer response.Body.Close()

    b, err := httputil.DumpResponse(response, true)
    panicCheck(err, ErrorFileRead)
    fmt.Println("response\n", string(b))
}

アップロードのストリーミングと進行状況を把握する方法を教えてください。

ありがとう

JimB:

を使用しio.LimitedReaderてファイルをラップし、必要な量のデータのみを読み取ることができます。返された実装がio.LimitReaderあります*io.LimitedReader

file.Seek(int64(offset), 0)
fileReader := io.LimitReader(file, size)

request, err := http.NewRequest(http.MethodPut, uploadURL, fileReader)

S3の場合は、ContentLengthを明示的に設定して、チャンクエンコーディングを使用しないようにする必要があります。

request.ContentLength = size

アップロードの進行状況については、Go:POSTリクエストの進行状況の追跡を参照してください。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

ファイルをアップロードするときに「進行状況」と更新イベントをajaxリクエストにバインドする方法

分類Dev

プログレスバーにファイルのアップロードの進行状況を表示する方法-AmazonS3バケット

分類Dev

リストからファイルをダウンロードして進行状況バーを表示する方法

分類Dev

Androidでレイアウトをリロードし、サークルの進行状況バーをプログラムで更新します

分類Dev

Blazorサーバー側を使用して、大きなファイルでコントローラーからクライアントへのファイルの進行状況のアップロードステータスを取得することは可能ですか?

分類Dev

C#:HttpClient、MultipartFormDataContentとして複数のファイルをアップロードするときのファイルアップロードの進行状況

分類Dev

Essenceフレームワークでファイルのアップロードの進行状況を表示する

分類Dev

マルチパートなしでファイルアップロードの進行状況を取得するにはどうすればよいですか?

分類Dev

マルチパートなしでファイルアップロードの進行状況を取得するにはどうすればよいですか?

分類Dev

JavascriptでFetchAPIを使用してファイルをアップロードし、進行状況を表示します

分類Dev

Javaを使用したファイルのアップロード(進行状況バーあり)

分類Dev

Apache HttpClient 4でファイルアップロードの進行状況バーを取得する方法

分類Dev

更新パネルにファイルアップロードを使用して進行状況の更新を表示する

分類Dev

Androidでリアクティブ拡張機能を使用して進行状況の更新を含むファイルをダウンロードする方法

分類Dev

GWT:進行状況バーを表示するためのファイルアップロード速度を取得します

分類Dev

ファイルのアップロードの進行状況の最後にfancyboxを閉じます

分類Dev

SSH.NETを使用してProgressBarにファイルアップロードの進行状況を表示する

分類Dev

ServiceStack-ファイルをバイトストリームとしてアップロードしますか?

分類Dev

Angular 7-データと一緒に複数のファイルをアップロードし、進行状況を報告します

分類Dev

ストリームなしのフェッチのアップロード進行状況のポリフィル

分類Dev

AFNetworkingを使用して、Strava V3APIへのアップロードの進行状況と非同期にファイルをPOSTします

分類Dev

Azureストレージへの非同期ファイルのアップロードの進行状況を追跡する方法

分類Dev

Angularファクトリ:アップロード中の進行状況に応じてスコープを更新します

分類Dev

Pythonを使用してGoogleドライブスクリプトにアップロードの進行状況を追加します

分類Dev

jquery:ajaxは、ロード時のリクエストIncイメージおよびその他のアセットの進行状況を追跡します

分類Dev

カスタム進行状況ダイアログはソフトキーボードアンドロイドを非表示にします

分類Dev

ファイルがAngular7でFormDataとして送信されるかどうかを確認するファイルアップロードの進行状況

分類Dev

進行状況の通知とともにバックグラウンドでFirebaseStorageにファイルを継続的にアップロードする

分類Dev

マルチパート/ボディWebリクエストを使用した複数のファイルアップロードのアップロード進行状況の追跡

Related 関連記事

  1. 1

    ファイルをアップロードするときに「進行状況」と更新イベントをajaxリクエストにバインドする方法

  2. 2

    プログレスバーにファイルのアップロードの進行状況を表示する方法-AmazonS3バケット

  3. 3

    リストからファイルをダウンロードして進行状況バーを表示する方法

  4. 4

    Androidでレイアウトをリロードし、サークルの進行状況バーをプログラムで更新します

  5. 5

    Blazorサーバー側を使用して、大きなファイルでコントローラーからクライアントへのファイルの進行状況のアップロードステータスを取得することは可能ですか?

  6. 6

    C#:HttpClient、MultipartFormDataContentとして複数のファイルをアップロードするときのファイルアップロードの進行状況

  7. 7

    Essenceフレームワークでファイルのアップロードの進行状況を表示する

  8. 8

    マルチパートなしでファイルアップロードの進行状況を取得するにはどうすればよいですか?

  9. 9

    マルチパートなしでファイルアップロードの進行状況を取得するにはどうすればよいですか?

  10. 10

    JavascriptでFetchAPIを使用してファイルをアップロードし、進行状況を表示します

  11. 11

    Javaを使用したファイルのアップロード(進行状況バーあり)

  12. 12

    Apache HttpClient 4でファイルアップロードの進行状況バーを取得する方法

  13. 13

    更新パネルにファイルアップロードを使用して進行状況の更新を表示する

  14. 14

    Androidでリアクティブ拡張機能を使用して進行状況の更新を含むファイルをダウンロードする方法

  15. 15

    GWT:進行状況バーを表示するためのファイルアップロード速度を取得します

  16. 16

    ファイルのアップロードの進行状況の最後にfancyboxを閉じます

  17. 17

    SSH.NETを使用してProgressBarにファイルアップロードの進行状況を表示する

  18. 18

    ServiceStack-ファイルをバイトストリームとしてアップロードしますか?

  19. 19

    Angular 7-データと一緒に複数のファイルをアップロードし、進行状況を報告します

  20. 20

    ストリームなしのフェッチのアップロード進行状況のポリフィル

  21. 21

    AFNetworkingを使用して、Strava V3APIへのアップロードの進行状況と非同期にファイルをPOSTします

  22. 22

    Azureストレージへの非同期ファイルのアップロードの進行状況を追跡する方法

  23. 23

    Angularファクトリ:アップロード中の進行状況に応じてスコープを更新します

  24. 24

    Pythonを使用してGoogleドライブスクリプトにアップロードの進行状況を追加します

  25. 25

    jquery:ajaxは、ロード時のリクエストIncイメージおよびその他のアセットの進行状況を追跡します

  26. 26

    カスタム進行状況ダイアログはソフトキーボードアンドロイドを非表示にします

  27. 27

    ファイルがAngular7でFormDataとして送信されるかどうかを確認するファイルアップロードの進行状況

  28. 28

    進行状況の通知とともにバックグラウンドでFirebaseStorageにファイルを継続的にアップロードする

  29. 29

    マルチパート/ボディWebリクエストを使用した複数のファイルアップロードのアップロード進行状況の追跡

ホットタグ

アーカイブ