mirror of
https://github.com/superseriousbusiness/gotosocial
synced 2025-06-05 21:59:39 +02:00
[bugfix] Wrap media in read closer (#941)
* use readcloser for content.Content * call media postdata function no matter what * return a readcloser from data func * tidy of logic of readertostore * fix whoopsie
This commit is contained in:
@@ -20,7 +20,6 @@ package fileserver
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"io"
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
@@ -86,12 +85,10 @@ func (m *FileServer) ServeFile(c *gin.Context) {
|
||||
}
|
||||
|
||||
defer func() {
|
||||
// if the content is a ReadCloser (ie., it's streamed from storage), close it when we're done
|
||||
// close content when we're done
|
||||
if content.Content != nil {
|
||||
if closer, ok := content.Content.(io.ReadCloser); ok {
|
||||
if err := closer.Close(); err != nil {
|
||||
log.Errorf("ServeFile: error closing readcloser: %s", err)
|
||||
}
|
||||
if err := content.Content.Close(); err != nil {
|
||||
log.Errorf("ServeFile: error closing readcloser: %s", err)
|
||||
}
|
||||
}
|
||||
}()
|
||||
|
@@ -30,7 +30,7 @@ type Content struct {
|
||||
// ContentLength in bytes
|
||||
ContentLength int64
|
||||
// Actual content
|
||||
Content io.Reader
|
||||
Content io.ReadCloser
|
||||
// Resource URL to forward to if the file can be fetched from the storage directly (e.g signed S3 URL)
|
||||
URL *url.URL
|
||||
}
|
||||
|
Reference in New Issue
Block a user