diff --git a/service/files/files.go b/service/files/files.go index fe7c918..bc235ea 100644 --- a/service/files/files.go +++ b/service/files/files.go @@ -95,3 +95,17 @@ func Upload(r io.ReadSeeker) (model.Upload, error) { return upload, nil } +func Download(hash string) (io.Reader, error) { + result := db.Get().Table("uploads").Where("hash = ?", hash).Row() + + if result.Err() != nil { + return nil, result.Err() + } + + fetch, err := client.R().SetDoNotParseResponse(true).Get(fmt.Sprintf("/worker/objects/%s", hash)) + if err != nil { + return nil, err + } + + return fetch.RawBody(), nil +}