fix: upload_manager write header in time (#1471)
Signed-off-by: bigerous <bigerous@qq.com>
This commit is contained in:
parent
cd0ecceacf
commit
abec6d3a84
|
|
@ -192,8 +192,6 @@ func (um *uploadManager) getDownload(ctx *gin.Context) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add header "Content-Length" to avoid chunked body in http client.
|
|
||||||
ctx.Header(headers.ContentLength, fmt.Sprintf("%d", rg[0].Length))
|
|
||||||
reader, closer, err := um.storageManager.ReadPiece(ctx,
|
reader, closer, err := um.storageManager.ReadPiece(ctx,
|
||||||
&storage.ReadPieceRequest{
|
&storage.ReadPieceRequest{
|
||||||
PeerTaskMetadata: storage.PeerTaskMetadata{
|
PeerTaskMetadata: storage.PeerTaskMetadata{
|
||||||
|
|
@ -212,8 +210,12 @@ func (um *uploadManager) getDownload(ctx *gin.Context) {
|
||||||
}
|
}
|
||||||
defer closer.Close()
|
defer closer.Close()
|
||||||
|
|
||||||
|
// Add header "Content-Length" to avoid chunked body in http client.
|
||||||
|
ctx.Header(headers.ContentLength, fmt.Sprintf("%d", rg[0].Length))
|
||||||
|
|
||||||
// write header immediately, prevent client disconnecting after limiter.Wait() due to response header timeout
|
// write header immediately, prevent client disconnecting after limiter.Wait() due to response header timeout
|
||||||
ctx.Writer.WriteHeaderNow()
|
ctx.Writer.WriteHeaderNow()
|
||||||
|
ctx.Writer.Flush()
|
||||||
|
|
||||||
if um.Limiter != nil {
|
if um.Limiter != nil {
|
||||||
if err = um.Limiter.WaitN(ctx, int(rg[0].Length)); err != nil {
|
if err = um.Limiter.WaitN(ctx, int(rg[0].Length)); err != nil {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue