123456789101112131415161718192021222324252627 |
- Media Repository
- ================
- *Synapse implementation-specific details for the 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 ``"local_content"`` directory.
- Thumbnails are stored under a ``"local_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"``
- Remote content is cached under ``"remote_content"`` directory. Each item of
- remote content is assigned a local "``filesystem_id``" to ensure that the
- directory structure ``"remote_content/server_name/aa/bb/ccccccccdddddddddddd"``
- is appropriate. Thumbnails for remote content are stored under
- ``"remote_thumbnails/server_name/..."``
|