Introducing PHP-AWS
Today I’m happy to announce a new open source project from Sitening.
PHP-AWS is a collection of PHP classes that let you tap into the power of Amazon’s Web Services platform. This is the same codebase we used to build Basejumpr. It lets us offer our users unlimited storage space and run as many servers as we need in the cloud.
PHP-AWS is hosted in Google Code and released under the MIT License, which means you’re free to use this code in any way you wish. However, we do ask that you contribute back any improvements you make so the community can benefit from them.
Currently, the project contains support for:
- Simple Storage Service (S3)
- Elastic Compute Cloud (EC2)
- Simple Queue Service (SQS)
- Mechanical Turk (MTurk)
By no means is our code perfect. There’s plenty of room for improvement. However, we’ve been using it for nearly three months without any major issues and consider it stable for release.
When we first began work on Basejumpr, I looked around the net and found a lot of example code using S3. Perl, Ruby, Python, and PHP libraries aplenty. Unfortunately, most of the code was incomplete, poorly designed, or died (due to memory issues) when uploading/downloading large files.
Since working with big files was a must for us, this meant we’d have to build the code ourselves. We’re pleased with the results. And we hope you’ll be, too.
Filed under: Open Source, PHP
[...] Update: This one looks even better, can handle large uploads without putting everything in memory, and handles Amazon’s other services too. [...]
[...] Last month I blogged about the release of PHP-AWS – our open source Amazon Web Services library. Today I want to highlight the S3 File Manager I recently added to the project. It makes debugging your S3 code much easier. Not only does it let you browse your bucket contents, download and delete files, but it’s also an excellent example of how to use the S3 class. The script is self-contained, so it’s easy to drop into any of your projects. Just open the file in your browser, fill in your Amazon info, and you’re all set. Tags: No Tags [...]
I get an error on line 314 of your class:
Fatal error: Call to a member function on a non-object in /path/s3class.php on line 314
That line reads: $sha1 = $this->_hasher->hash($str);
Any ideas how to fix this?
Thanks!
PanMan: It looks like you don’t have the Crypt_HMAC Pear module installed. You can get it here:
http://pear.php.net/package/Crypt_HMAC
I do have that installed. As I posted on the S3 forum:
http://developer.amazonwebservices.com/connect/thread.jspa?threadID=14678&tstart=0
If I add
$this->_hasher = new Crypt_HMAC($this->_secret, “sha1″);
on the line before the line that errors, it works, but it tells me I have no buckets. I use the example code from your class. Love to get it working (and feeling kinda newbie here..)
PanMan: I’m pasting a copy of the reply I sent you in the AWS forum…
I downloaded a fresh copy of PHP-AWS and everything worked fine for me.
Are you using PHP 4 or 5? This class uses PHP5 syntax. If you’re running 4, it will skip over the __construct() constructor and never initialize the class variable $this->_hasher. That’s probably why you’re having to create it locally inside the signature() method.
If you change __construct() to be named S3() you should be set. I believe that’s the only PHP5 specific code in the class.
As for the example file saying you don’t have any buckets, that’s probably because it didn’t initialize $this->_key and $this->secret in __construct() either. It wasn’t able to connect to S3 since it didn’t have your login information.
Hi. I still had some problems, but I got it all working. I posted in the Amazon forums thread, lets keep the discussion there.
http://developer.amazonwebservices.com/connect/thread.jspa?messageID=56890�
I visited activecollab.com and there is free and opensource project.
You build basejumpr.com Is it right way for professional company use and make money from free opensource software?
Sebastian, the BaseJumpr code is freely available. All you need to do is ask for the code. In fact, you can get more info on it at Google Code – http://code.google.com/p/basejumpr/ . And yes, people provide services with open source software every day and charge for their service. It’s a pretty common and accepted practice. However, the importer software is not open source and did not come from activecollab, and is not freely available.
I have just read on activeCollab blog that they will publish version 1.0 soon. Licence will change and what will happen with basejump then?
I would like sign up to basejump.
Which version of activeCollab is installed on your serwer?
Is is stable?
no answer?
question are too difficult?