mirror of
https://github.com/hedgedoc/hedgedoc.git
synced 2025-05-23 19:47:03 -04:00
refactor(media): store filenames, use pre-signed s3/azure URLs, UUIDs
Signed-off-by: Erik Michelson <github@erik.michelson.eu>
This commit is contained in:
parent
4132833b5d
commit
157a0fe278
47 changed files with 869 additions and 389 deletions
|
@ -11,6 +11,12 @@ background information and explanations. They are especially useful for contribu
|
|||
<span>Notes</span>
|
||||
</div>
|
||||
</a>
|
||||
<a href='/concepts/media/'>
|
||||
<div class='topic'>
|
||||
<span>📸</span>
|
||||
<span>Media</span>
|
||||
</div>
|
||||
</a>
|
||||
<a href='/concepts/user-profiles/'>
|
||||
<div class='topic'>
|
||||
<span>🙎</span>
|
||||
|
|
23
docs/content/concepts/media.md
Normal file
23
docs/content/concepts/media.md
Normal file
|
@ -0,0 +1,23 @@
|
|||
# Media
|
||||
|
||||
!!! info "Design Document"
|
||||
This is a design document, explaining the design and vision for a HedgeDoc 2
|
||||
feature. It is not a user guide and may or may not be fully implemented.
|
||||
|
||||
Media is the term for uploads associated with a note in HedgeDoc.
|
||||
Currently, there's only support for images.
|
||||
|
||||
Media files can be saved to different storage backends like the local filesystem, S3, Azure Blob
|
||||
storage, generic WebDAV shares, or imgur.
|
||||
Each storage backend needs to implement an interface with three methods:
|
||||
|
||||
- `saveFile(uuid, buffer, fileType)` should store a given file and may return stringified metadata
|
||||
to store in the database for this upload. The metadata does not need to follow a specific format,
|
||||
and will only be used inside the storage backend.
|
||||
- `deleteFile(uuid, metadata)` should delete a file with the given UUID. The stored metadata can
|
||||
be used for example to identify the file on the storage platform.
|
||||
- `getFileUrl(uuid, metadata)` should return a URL to the file with the given UUID. The stored
|
||||
metadata can be used to identify the file on the storage platform.
|
||||
The returned URL may be temporary.
|
||||
|
||||
Uploads are checked for their MIME type and compared to an allow-list and if not matching rejected.
|
Loading…
Add table
Add a link
Reference in a new issue