Some of your suppliers and business partners may want to interchange files with your store via ftp/sftp. Usually it is orders and stock data in CSV or XML format. And we should to decide, how to hold this sftp service.
First of all I have to warn you about using the optimised directory structure. At one single folder you should keep not more than 100-200 files.
For example, this is very bad for performance:
If there will be thousands of files in one single folder, the performance will be very poor. It could take minutes to read files from that plain directory structure.
It should be like that:
As you can see, the files are grouped by subfolders (the same way Magento uses at media folder). At each subfolder there are minimum amount of files. The reading of the files will be very fast.
So, I can offer 3 variants of using (s)FTP service:
1) Build (s)ftp service yourselves
It can be a simple AWS instance with ftp/sftp enabled and storage volume attached. Here we can make all the functionality as we wish, including security optimisations. The build and setup of our own sftp could take up to 2 days of work and it will cost approximately 30-50 USD/month.
2) Use AWS Transfer Family
It is fully managed professional service, but very and very expensive. The costs start from 400 USD/month.
3) Use another managed ftp services
They are cheaper than AWS, but it seems they are less functional. We do not need to maintain them, it is the advantage. But we have absolutely no control on them, and will use it as a blackbox. The costs start from 40 USD/month.
As a result, I suggest to deploy own (s)ftp service (1-st point), because it has acceptable cost and we can do with it whatever we wish.
But if you have not enough skills, you should of course use managed ftp service (3-rd point).
If you need any help in setting up sFTP, you can contact me.