Hello, and I hope this is the bombshell for you, that it is for me.
After learning about Amazon's S3 Service, which allows you to store data for 15 cents per gigabyte per month (compare this with the cost of a loaded 3TB ReadyNAS NV, which I was considering buying, and it certainly competes), or even transfer and/or serve it for about $63/gigabit/month, my mind was literally swimming with possibilities. I was ready to write the Next Killer App, to allow one of my clients to backup and restore their data with S3, when I noticed a real scarcity of PHP S3 support.
Geoff Gaudreault's PHP S3 class seems to be the most popular starting point for communicating with S3 using their REST API, so I started there, and created PHP classes to backup and restore data, that I'm going to share with you.
S3_Backup will recursively backup an entire directory tree to an S3 bucket, while saving permissions, ownership, and modification times in the S3 metadata fields.
S3_Restore will restore a backup made with S3_Backup.
S3_Prune will recursively prune data stored in an S3 bucket.
Note that although S3_Backup supports them, S3_Restore does not support block/char special devices, FIFOs, or sockets, and that is because PHP4 lacks a mknod() as far as I can see, although there's no reason you can't shell_exec a commandline 'mknod' if you're really hankering for it. I just didn't immediately see a portable way to do it.
I've used these classes to backup and restore a 15GB dataset (with directories and symlinks) perfectly. However, I provide them as-is with no implied warranty. They are free to use, although I'd appreciate attribution.