View Full Version : Remote server image/attachment database hack

02 Jun 2002, 00:05
This is my first vBulletin hack. I have tested it only in my own vBulletin implementation. Let me know if it worked for you.

What this hack does:

I created this hack because I plan to use my vBulletin website mainly for storing and searching thousands of images that can be uploaded by many different people. Since images take up a lot of space and bandwidth I thought of a solution whereby vBulletin saves attachments on a remote database and provides links to these attachments or if images are going to be shown in messages that the remote server generates them directly to the end browser.

Another requirement is that the attachments not be available outside vBulletin itself in order to conserve the privacy of them. So what I did is create temporary permissions only provided from within vBulletin itself before requesting the files to be downloaded. These permissions are then immediately deleted by the remote server once the files are delivered. If the files are not delivered within a specified time, the permissions are automatically eliminated.

The benefit of this hack is that you will be able to provide virtually unlimited space for your attachments for almost zero cost.

What you need in order to implement this hack:

You will need a separate server from the one where you are hosting vBulletin with http, php, and mysql services. I tested the hack on MS IIS on a server connected with regular DSL.

You will need a fixed ip address or a domain name of your webserver where the images are stored. If you don't have one you can get dynamic DNS service (I use tzo.com for about $24 a year - works great).

Your vBulletin server must be able to communicate to your remote server mysql database. This is crucial.

Your remote server must be able to communicate with the vBulletin mysql database server, if not it will not be able to update the view/download count (not terribly important).

If you ISP blocks ports you might be able to get around them by using alternate ports for everything. I think the hack should be able to support alternate ports.

Steps to implement the hack:

1. First, of course, do a back up of everything :)

2. Apply the hacks to your current vBulletin implementation using vbHacker.php. Hacks include about 18 code alterations and 3 template alterations and no database alterations.

3. Edit the changed config.php supplying the necessary information about the remote web server and database server.

4. Upload the edited config.php to the /admin directory of the remote server.

5. Upload riattachment.php below the /admin directory of the remote server. riattachment.php is the program that delivers the attachment to the end browser, it is a heavily modified version of the original attachment.php. attachment.php is no longer used after applying the hack (I think).

6. Create the database and tables of the remote server using the createattachdb.php utility.

7. If you already have attachments stored in your vBulletin database you will need to transfer them to the remote database using the provided transferattach.php utility.

future possible enhancements to this hack:

1. Check the availability of the remote server and if not there gracefully disallow uploading of new attachments and disable viewing/downloading of attachments. I think this is important since usually the remote servers will be connected via consumer internet and will be home computers so connectivity is not going to be very stable to say the least.

2. Have the option of showing thumbnails stored at the main server and then if requested transfer the large size images stored at the remote server.

3. Store the remote database connection info in the setting table so that it can be changed from within the control panel.

4. Make a fully comprehensive install program, possibly adding the required information of the remote server to config.php directly instead of hacking it.

5. Possibly eliminate the need of fixed ip/domain name by having the remote server automatically update its ip address at the vBulletin database server each time it connects to the internet.

02 Jun 2002, 01:14
Wonderful :)

02 Jun 2002, 04:27
Originally posted by 99Percent
If you don't have one you can get dynamic DNS service (I use tzo.com for about $24 a year - works great).Great hack :)

But may I ask why you use tzo.com? I mean, there are a lot of free ones out there that give you the same thing, if not more.

Im personaly very happy with DNS2Go (http://www.d2g.com/)

02 Jun 2002, 06:36
Hey, if DNS2Go works for you, great. I just mentioned a possible solution.

02 Jun 2002, 21:43
....so confused...

what vbb version is yours

when my vbb 2.25 install the hack ...

can't find those :

In the admin/functions.php file, replace this code:
$post['filename'] = censortext(htmlspecialchars($post['filename']));

In the mod/moderate.php file, replace this code:

maketableheader("Attachment:</b> ".htmlspecialchars($attachment['filename'])."<b>","",0);

:( :(

02 Jun 2002, 21:55
I am using 2.2.6. Let me know if it is too much hassle for you to upgrade to 2.2.6, it shouldn't be terribly difficult for me to build a hack file for 2.2.5 if its only those two hacks that have to be changed.

03 Jun 2002, 11:16
hey :)

great hack

my best wish...


03 Jun 2002, 16:11
Originally posted by 99Percent
I am using 2.2.6. Let me know if it is too much hassle for you to upgrade to 2.2.6, it shouldn't be terribly difficult for me to build a hack file for 2.2.5 if its only those two hacks that have to be changed.

ya....now i can't up to 2.26.......because i use "big 5" ...
but the vbb is very bad for language support,especially for Chinese.

when change the new verson again will need to write the
chinese style again ...

So...i need your help let me use it for 2.25 ....thanks..

03 Jun 2002, 19:31
Ok, here is the hack modified for 2.2.5 but I have not tested it in any way. Please let me know if it worked.

05 Jun 2002, 21:12

A friend of mine who admins the boards has just written this same hack! We've had the same thing in beta for the past 3 months, at least :(

We have a secondary server donated by orange.net which we save attachments in. At the moment we have database connections, and attachments are brought through using the same attachment.php file - I did intend on having a remote attachment.php but thats step 2... Just got it up and running tonight, as we've had mySQL problems!

I can't believe it! hehe...

05 Jun 2002, 21:14
Also, which vB files need coping over onto the remote server as well?

05 Jun 2002, 23:50
Hello Martz,

I think my hack is better because it delivers the attachments directly from the remote server bypassing the server where vBulletin resides. This way you also save on bandwidth from the main server.

The only vB files that need to be copied to the remote server are config.php (after adding the necessary database connection information), vb_mysql.php and riattachment.php

06 Jun 2002, 09:43
I agree that the remote attachment.php is a good addition - bandwidth isn't our problem yet - database size was. I'd like to use your riattachment.php, might try it out today :)

09 Jun 2002, 15:50
do you have the non vbhacker version?

12 Jun 2002, 14:58
OMG i requested this one. This is amazing. I have always been looking for somehting liek this. I am going to install this tonight and come back and tell you how good it works. Just to get this straight to what this hack does to see if i am correct. I already have 2 servers on 2 different hosts. So images and attachments go to one servers host and the other holds the actual php files and stuff. Please tell me if this is what this hack does hehe. Thanks so much.

13 Jun 2002, 00:33
BigJohnson, you will need to install three PHP files (vb_mysql.php, riattachment.php and config.php) in the server where the images/attachments are going to be delivered from.

Fazle, what is the non vbhacker version? You mean you just one a set of instructions on how to edit the PHP files?

26 Jul 2002, 00:55
This sounds like the perfect hack for me, as I have just moved my vBulletin (that uses roughly 30 GB/month) from my primary server to my secondary one (see signature). My primary server allows 400 GB of transfer per month for a set fee (and I'm not even using 300 GB right now), while my secondary only allows 40 GB per month.

Anyway...my question is: How much bandwidth could/would I save through this? What has it done for your boards? Does attachments really account for a lot of bandwidth usage? Thanks. :)

18 Oct 2002, 04:11
setting up my config file im having some problems..
$ridbhaltonfailedconnect=1; //set to 1 if you wish a halt error message when there is a problem connecting with the remote database
$riwebservername='snyx.com'; //name of the server where riattachment.php resides
$riexpirationseconds=3600; //(recommended 3600 seconds) time in seconds attachment permissions expire in remote db server in case attachments arent downloaded (not necessary for shown images)
$ridbusepconnect=1;but I get numerious errors..

and on my other server I have it setup like

what else do I need in these folders?
sorry but I really need this :D


18 Oct 2002, 04:30
What errors are you getting exactly?

25 Nov 2002, 09:37
where is the install file
and does this work on 2.2.9 or .8
waiting this the hack i been looking for for ages
let me know
thank you

12 Feb 2003, 16:13
Great stuff, just installed it. :)

Bulent Tekcan
05 Mar 2004, 22:35
Is this hack work in VB3 RC4 ?


Bulent Tekcan
08 Apr 2004, 20:23
Anybody answer me ?

29 Sep 2004, 01:17
Has anyone released this for vb3?

29 Sep 2004, 14:12
Has anyone released this for vb3?

If this would be released for VB3 then it would be a dream come true. It's only a matter of time before I have to shut down the attachment option because I've ran out of webspace. I still have about 900mb left on another account, so it would be fantastic if that one could be used for the attachments.

29 Oct 2004, 22:39
Is there same hack but for Vb3?

30 Oct 2004, 21:19
is there one for vb3.0 same hack?

30 Oct 2004, 21:19
Guess there is not.