mirror of
https://github.com/matrix-org/dendrite.git
synced 2025-12-07 15:03:09 -06:00
mediaapi/storage: Rework GetMediaMetadata API to return new MediaMetadata
This commit is contained in:
parent
2fca4bbd65
commit
28ef35d36a
|
|
@ -48,13 +48,6 @@ func (d *Database) StoreMediaMetadata(mediaMetadata *types.MediaMetadata) error
|
|||
}
|
||||
|
||||
// GetMediaMetadata possibly selects the metadata about previously uploaded media from the database.
|
||||
func (d *Database) GetMediaMetadata(mediaID types.MediaID, mediaOrigin gomatrixserverlib.ServerName, mediaMetadata *types.MediaMetadata) error {
|
||||
metadata, err := d.statements.selectMedia(mediaID, mediaOrigin)
|
||||
mediaMetadata.ContentType = metadata.ContentType
|
||||
mediaMetadata.ContentDisposition = metadata.ContentDisposition
|
||||
mediaMetadata.ContentLength = metadata.ContentLength
|
||||
mediaMetadata.CreationTimestamp = metadata.CreationTimestamp
|
||||
mediaMetadata.UploadName = metadata.UploadName
|
||||
mediaMetadata.UserID = metadata.UserID
|
||||
return err
|
||||
func (d *Database) GetMediaMetadata(mediaID types.MediaID, mediaOrigin gomatrixserverlib.ServerName) (*types.MediaMetadata, error) {
|
||||
return d.statements.selectMedia(mediaID, mediaOrigin)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -115,10 +115,11 @@ func Download(w http.ResponseWriter, req *http.Request, origin gomatrixserverlib
|
|||
}
|
||||
|
||||
// check if we have a record of the media in our database
|
||||
err := db.GetMediaMetadata(r.MediaMetadata.MediaID, r.MediaMetadata.Origin, r.MediaMetadata)
|
||||
mediaMetadata, err := db.GetMediaMetadata(r.MediaMetadata.MediaID, r.MediaMetadata.Origin)
|
||||
|
||||
if err == nil {
|
||||
// If we have a record, we can respond from the local file
|
||||
r.MediaMetadata = mediaMetadata
|
||||
r.respondFromLocalFile(w, cfg.BasePath)
|
||||
return
|
||||
} else if err == sql.ErrNoRows && r.MediaMetadata.Origin != cfg.ServerName {
|
||||
|
|
@ -131,9 +132,10 @@ func Download(w http.ResponseWriter, req *http.Request, origin gomatrixserverlib
|
|||
|
||||
for tries := 0; ; tries++ {
|
||||
activeRemoteRequests.Lock()
|
||||
err = db.GetMediaMetadata(r.MediaMetadata.MediaID, r.MediaMetadata.Origin, r.MediaMetadata)
|
||||
mediaMetadata, err = db.GetMediaMetadata(r.MediaMetadata.MediaID, r.MediaMetadata.Origin)
|
||||
if err == nil {
|
||||
// If we have a record, we can respond from the local file
|
||||
r.MediaMetadata = mediaMetadata
|
||||
r.respondFromLocalFile(w, cfg.BasePath)
|
||||
activeRemoteRequests.Unlock()
|
||||
return
|
||||
|
|
|
|||
|
|
@ -194,8 +194,9 @@ func Upload(req *http.Request, cfg *config.MediaAPI, db *storage.Database) util.
|
|||
}).Info("File uploaded")
|
||||
|
||||
// check if we already have a record of the media in our database and if so, we can remove the temporary directory
|
||||
err = db.GetMediaMetadata(r.MediaMetadata.MediaID, r.MediaMetadata.Origin, &types.MediaMetadata{})
|
||||
mediaMetadata, err := db.GetMediaMetadata(r.MediaMetadata.MediaID, r.MediaMetadata.Origin)
|
||||
if err == nil {
|
||||
r.MediaMetadata = mediaMetadata
|
||||
removeDir(tmpDir, logger)
|
||||
return util.JSONResponse{
|
||||
Code: 200,
|
||||
|
|
|
|||
Loading…
Reference in a new issue