summary refs log tree commit diff
path: root/docs/media_repository.rst
diff options
context:
space:
mode:
authorMark Haines <mark.haines@matrix.org>2014-12-02 15:09:51 +0000
committerMark Haines <mark.haines@matrix.org>2014-12-02 17:13:14 +0000
commit279c48c8b442ec726fb5088e56ce9c1d2ed4bfb5 (patch)
tree197c75f38f0059d2c99b5846f07839e41693ae92 /docs/media_repository.rst
parentDrop log level for incorrect logging contexts to WARN if the context is wrong... (diff)
downloadsynapse-279c48c8b442ec726fb5088e56ce9c1d2ed4bfb5.tar.xz
Write the upload portion of version 1 of the media repository
Diffstat (limited to 'docs/media_repository.rst')
-rw-r--r--docs/media_repository.rst20
1 files changed, 20 insertions, 0 deletions
diff --git a/docs/media_repository.rst b/docs/media_repository.rst
new file mode 100644
index 0000000000..e554d0f495
--- /dev/null
+++ b/docs/media_repository.rst
@@ -0,0 +1,20 @@
+Media Repository
+================
+
+The media repository is where attachments and avatar photos are stored.
+It stores attachment content and thumbnails for media uploaded by local users.
+It caches attachment content and thumbnails for media uploaded by remote users.
+
+Storage
+-------
+
+Each item of media is assigned a ``media_id`` when it is uploaded.
+The ``media_id`` is a randomly chosen, URL safe 24 character string.
+Metadata such as the MIME type, upload time and length are stored in the
+sqlite3 database indexed by ``media_id``.
+Content is stored on the filesystem under a "content" directory. Thumbnails are
+stored under a "thumbnails" directory.
+The item with ``media_id`` ``"aabbccccccccdddddddddddd"`` is stored under
+``"local/content/aa/bb/ccccccccdddddddddddd"``. Its thumbnail with width
+``128`` and height ``96`` and type ``"image/jpeg"`` is stored under
+``"local/thumbnails/aa/bb/ccccccccdddddddddddd/128-96-image-jpeg"``