Feature Wiki

Information about planned and released features

Tabs

Storage Mechanism of Attachments in Forums

1 Requirements

Currenlty attachments of postings in ILIAS forums are all stored in one single directory located in [EXTERNAL_DATA_DIRECTORY]/[CLIENT]/forum. Each file uploaded by a user receives a prefix [FORUM_ID]_[POSTING_ID]_ and is moved to the folder mentioned before.

Similar to file objects or mail attachments I suggest a nested folder structure to store forum attachments. This could even affect the performance in a positive way. ILIAS does not have to scan the complete directory for each posting to find the respective files anymore. Currently this directory scan has to be done also for postings without any attachments.

A database update step is necessary to migrate all existing forum attachment files according to the new approach. The migration should be failsafe (as far as possible). This means, that continuing the migration process should be possible if the PHP script execution crashed because of memory issues or execution time. Futhermore all operations should be logged to the ILIAS log file.

When implementing this (if appreciated by the JF), also sanitizing the uploaded filenames should be addressed. Original filenames could be stored in a database table, the sanitized version should be stored in the file system (to prevent issues with file operations).

2 Additional Information

3 Discussion

Bogen, Christian [bogen] 2016-08-03: Universität Stuttgart appreciates this and would potentially (ie. depending on the "volume", at least partly) be interested in funding.

JourFixe, ILIAS [jourfixe], September 26, 2016: We highly appreciate this suggestion and schedule it for 5.3. We discussed if we could extend this feature towards a general virtual file storage service for ILIAS. But this would require an additional feature wiki page.

We'd like to discuss the general file-storage service, since this would allow a lot of flexibility in the future. Maybe a workshop would be adequate?

4 Implementation

{please give a description of the final implementation and add screenshots if possible}

Test Cases

Test cases completed at {date} by {user}

  • {Test case number linked to Testrail} : {test case title}

Approval

Approved at {date} by {user}.

Last edited: 28. Sep 2016, 08:27, Schmid, Fabian [fschmid]