diff options
author | Neil Alexander <neilalexander@users.noreply.github.com> | 2020-08-25 15:08:37 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-08-25 15:08:37 +0100 |
commit | 287700baeebd3762008db368122f34076dd76f3c (patch) | |
tree | 51e8fcbf2b31f5ff62376f38b58f126de422bb5f /mediaapi/storage/sqlite3/storage.go | |
parent | a4db43e0969125db899dae465daf3ab1385c8ce9 (diff) |
Randomly generated media IDs (#1336)
* Filenames based on hashes but media IDs randomly generated and per-upload metadata
* Lint
* Comment generateMediaID
Diffstat (limited to 'mediaapi/storage/sqlite3/storage.go')
-rw-r--r-- | mediaapi/storage/sqlite3/storage.go | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/mediaapi/storage/sqlite3/storage.go b/mediaapi/storage/sqlite3/storage.go index d5c3031e..9e510fa3 100644 --- a/mediaapi/storage/sqlite3/storage.go +++ b/mediaapi/storage/sqlite3/storage.go @@ -70,6 +70,19 @@ func (d *Database) GetMediaMetadata( return mediaMetadata, err } +// GetMediaMetadataByHash returns metadata about media stored on this server. +// The media could have been uploaded to this server or fetched from another server and cached here. +// Returns nil metadata if there is no metadata associated with this media. +func (d *Database) GetMediaMetadataByHash( + ctx context.Context, mediaHash types.Base64Hash, mediaOrigin gomatrixserverlib.ServerName, +) (*types.MediaMetadata, error) { + mediaMetadata, err := d.statements.media.selectMediaByHash(ctx, mediaHash, mediaOrigin) + if err != nil && err == sql.ErrNoRows { + return nil, nil + } + return mediaMetadata, err +} + // StoreThumbnail inserts the metadata about the thumbnail into the database. // Returns an error if the combination of MediaID and Origin are not unique in the table. func (d *Database) StoreThumbnail( |