diff --git a/couscous.yml b/couscous.yml index 3cad681..c8a90b3 100644 --- a/couscous.yml +++ b/couscous.yml @@ -62,6 +62,9 @@ menu: router: text: Router relativeUrl: configuration/router.html + tmpfs: + text: Tmpfs + relativeUrl: configuration/tmpfs.html multilang: name: Languages diff --git a/docs/configuration/tmpfs.md b/docs/configuration/tmpfs.md new file mode 100644 index 0000000..c7d6046 --- /dev/null +++ b/docs/configuration/tmpfs.md @@ -0,0 +1,26 @@ +--- +currentMenu: tmpfs +--- + +## Temporary file system service +This service is responsible for managing temporary files. TMP files are created: + +- When uploading files, chunks are stored in the TMP folder before merging and moving to the final storage destination +- When creating and extracting archives (zip files) +- When downloading multiple files, they are copied into TMP folder before zipping + + +Tmp files are usually removed immediately after the use. For expired files, configurable garbage collection is used: + +``` + 'Filegator\Services\Tmpfs\TmpfsInterface' => [ + 'handler' => '\Filegator\Services\Tmpfs\Adapters\Tmpfs', + 'config' => [ + 'path' => __DIR__.'/private/tmp/', + 'gc_probability_perc' => 10, + 'gc_older_than' => 60 * 60 * 24 * 2, // 2 days + ], + ], +``` + +Note: if you want to use this script as a stateless app or in any kind of multi-node environment, you must must mount a single shared TMP folder for all the instances. You can solve this problem with [Amazon Elastic File System](https://aws.amazon.com/efs/) or similar approach. diff --git a/docs/development.md b/docs/development.md index 4b8c2ec..c91b7a9 100644 --- a/docs/development.md +++ b/docs/development.md @@ -17,6 +17,8 @@ npm install npm run build ``` +We also have a sample docker image [here](https://github.com/filegator/demo) + ## Compiles and hot-reloads The following command will launch backend and frontend on ports 8081 and 8080: