feat: add proof download
This commit is contained in:
parent
160a9f7ebb
commit
3b1e860256
|
@ -84,6 +84,31 @@ func (f *FilesController) GetDownloadBy(cidString string) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (f *FilesController) GetProofBy(cidString string) {
|
||||||
|
ctx := f.Ctx
|
||||||
|
|
||||||
|
hashHex, valid := validateCid(cidString, true, ctx)
|
||||||
|
|
||||||
|
if !valid {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
download, err := files.DownloadProof(hashHex)
|
||||||
|
if internalError(ctx, err) {
|
||||||
|
logger.Get().Debug("failed fetching file proof", zap.Error(err))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
err = ctx.StreamWriter(func(w io.Writer) error {
|
||||||
|
_, err = io.Copy(w, download)
|
||||||
|
_ = download.(io.Closer).Close()
|
||||||
|
return err
|
||||||
|
})
|
||||||
|
if internalError(ctx, err) {
|
||||||
|
logger.Get().Debug("failed streaming file proof", zap.Error(err))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func (f *FilesController) GetStatusBy(cidString string) {
|
func (f *FilesController) GetStatusBy(cidString string) {
|
||||||
ctx := f.Ctx
|
ctx := f.Ctx
|
||||||
|
|
||||||
|
|
|
@ -198,6 +198,22 @@ func Download(hash string) (io.Reader, error) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func DownloadProof(hash string) (io.Reader, error) {
|
||||||
|
uploadItem := db.Get().Model(&model.Upload{}).Where(&model.Upload{Hash: hash}).Row()
|
||||||
|
|
||||||
|
if uploadItem.Err() != nil {
|
||||||
|
logger.Get().Debug(ErrInvalidFile.Error(), zap.String("hash", hash))
|
||||||
|
return nil, ErrInvalidFile
|
||||||
|
}
|
||||||
|
fetch, err := client.R().SetDoNotParseResponse(true).Get(getWorkerProofUrl(hash))
|
||||||
|
if err != nil {
|
||||||
|
logger.Get().Error(ErrFailedFetchObject.Error(), zap.Error(err))
|
||||||
|
return nil, ErrFailedFetchObject
|
||||||
|
}
|
||||||
|
|
||||||
|
return fetch.RawBody(), nil
|
||||||
|
}
|
||||||
|
|
||||||
func Status(hash string) int {
|
func Status(hash string) int {
|
||||||
var count int64
|
var count int64
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue