Google AppEngine - Easy free file hosting



As StationRipper has grown, the installer size has gotten bigger. A quick download with a installer less than 1 MB has gone to almost 3MB. I have good hosting through ActiveHost, but they aren't really set up to be a major file-serving site (or at least, I'm not willing to pay the cost to put the entire server on a direct 100 MB backbone connection). People are impatient - doubly so on the internet. So the 60k/sec users were getting is no longer very good - I assume a fair number get bored and move on :)

I've looked at drop.io, which I've seen get up to 800MB/sec on, but that isn't a direct file link (the user needs to click through). Plus, last week they randomly disabled my drop (still not sure why), so I don't find that to be a viable solution.

I've been learning Google AppEngine, and it occurred to me that I could create a app that JUST serves my installer. That could serve as a mirror or the main download area, as I could create a direct download link to the file.

It actually took a while to figure out how to do this, mainly because of something non-obvious (if you have a catch all, like url: /.* before other handlers, you'll end up using the catch all instead. I originally was just trying to get this working on a bigger project, and stuck the static handler at the end of the app.yaml - and it didn't work, because of the catch all)

If you don't have it already, get Python and the AppEngine SDK (general info here). Download and install Python 2.5 Download and install the AppEngine SDK

Create your app directory

Create a directory under it called static

Create your app.yaml file in the main directory. It should look like:



application: yourappname

version: 1

runtime: python

api_version: 1



handlers:

- url: /(.*\.(gif|png|jpg|exe))

static_files: static/\1

upload: static/(.*\.(gif|png|jpg|exe))



The static file handler will handle gif,png,jpg, and exe in the above. Add whatever else you need.

Copy your static files to the static directory (in my case, I only have one exe) Change yourappname to whatever your app is called (you'll need to get that set up on AppSpot before deploying) Deploy it. If you don't have it already, get a AppEngine account Create a new Application (should be the same what you used for "yourappname") I deploy with the AppEngine Laucher - run it, go to File->Add Existing Application, and point it to your main directory. Then click on that app and go to Control->Deploy

Here's a direct link to the installer on my AppSpot:

http://stationportal.appspot.com/StationRipperInst.exe.



I'm not exactly sure how fast it is (as it's SO fast) - what takes a couple of minutes on my domain isn't even showing as downloading, it's so blazingly fast. I have briefly seen 1,500/MB sec show.. so it's FAST!

You get 1GB of file transfer for FREE every 24 hours. So I'll get about 350 downloads a day for free. Additional costs 12 cents per GB, which is fairly cheap as long as I don't get Slashdot'd or on the Digg front page (last time I had that happen I hit 210,977 downloads in a month, so I'd end up paying some for this)

Under "Billing Settings" you can add a CC for overages - and under "Change Budget" from that page you can put the entire budget to Bandwidth Out.