I'm in the process of creating a Wordpress 3.0 Multisite for real estate agents. We are expected about 50,000 agents to sign up in the first month due to our exposure so far and our good feedback in regards to the site's features.
However, we are worried we don't have enough space for each user in the blogs.dir folder, and that we cannot allocate more to them. Many agents will be uploading pictures and audio files for podcasts and we want to accomodate their needs. We cannot increase the disk space on our own server but we can purchase another. Is there any plugin available that could be modified to fit this purpose, or does this exactly? I tried searching on Google and on this site but I did not find much. I am considering hosting the files on Amazon S3 but we may choose to purchase another dedicated server just for our file hosting.
So, does anyone know how to do this? That basically whenever Wordpress tries to upload a file to wp-content/blogs.dir/ it will instead link to a folder with the same structure on another server? I imagine this would be done through .htaccess and a few other things, but I am not sure how to get it all set up. We are ready to purchase another server if necessary.
Thanks for your help.
I have just read this post, and I think it sums up what we want to do...
Especially in this section:
When using multiple web-tier servers to compile and generate WordPress pages, one of the issues encountered is uploaded multi-media. In a single-server install, the files get placed into the wp-content/blogs.dir folder and we forget about it. If we introduce more than one server — we need to be careful that we no longer store these data files locally as they will not be accessible from the other servers.
To work around this issue, consider having a dedicated or semi-dedicated file server running a distributed file-system (NFS, AFS, etc.). When a user uploads a file, write it to the shared storage — which makes it accessible to all connected web-servers. Alternatively, you may opt to upload it to Amazon S3, Rackspace CloudFiles or some other Content Delivery Network. Either way, the key here is to make sure the files are not going to be local to a single web-server — as if they are — they will not be know to other servers.
On a distributed file-system, refrain — or never — serve files off this system directly. Place a web-server or some other caching services (varnish, squid) who is responsible from reading the data off the shared storage device and returning it to the web server for sending back to the client. One advantage of using something like varnish is that you can create a fairly large and efficient cache — in front of the shared file system. This allows the file-system to focus on serving new files and leaving the highly-requested files to the cache to serve.