Write the upload portion of version 1 of the media repository

This commit is contained in:
Mark Haines 2014-12-02 15:09:51 +00:00
parent 15099fade5
commit 279c48c8b4
8 changed files with 451 additions and 7 deletions

20
docs/media_repository.rst Normal file
View file

@ -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"``