If you have a lot of uploads, you don't want to store all your files in a flat structure. So you can set a directory structure for your uploads.
Important note: if you use variable that doesn't exist or incorrect like invalid env variable, it results in an error and the directory structure will become flat again.
As you can see all info files are stored in a flat structure. It cannot be changed if you use file info storage. In order to get rid of those .info files use different info storages.
The info storage is a database or directory. The main goal is to keep track of uploads. Rustus stores information about download in json format inside database.
Hooks have priorities: file hooks are the most important, then goes webhooks and AMQP hooks have the least priority. If pre-create hook failed, the upload would not start. Of course, since AMQP is a protocol that doesn't allow you to track responses we can't validate anything to stop uploading.
The main difference is that hook name is passed as a command line parameter to a single file hook, but if you use hooks directory then hook name is used to determine a file to call. Let's take a look at the examples