Before you even begin thinking why the upload failed, please make sure that you have the PHP cURL extension installed and activated in your server's php.ini. If you are unsure, please ask your host or consult the output of phpinfo(). If you see a cURL section in there, it is installed and all is fine. If you don't see anything about cURL being mentioned in there, well, you have to install and enable it on your server. Ask your host or server administrator about it.
The first thing you should do is a sanity check. Make sure that you have copied your Access Key and Secret Key correctly. Especially the latter, may have up to two equal signs at the end. These are required. Then, check your bucket name. The bucket must already exist; Akeeba Backup can not create it for you. The bucket must also be writable by the user whose Access and Secret Keys you're using; you can check that in the Amazon S3 Console. Moreover, do note that the bucket name is case sensitive. This means that Abc, ABC, abc and AbC are four different bucket names, as far as S3 is concerned. Akeeba Backup, by default, converts your bucket name to lowercase. In the previous example, Akeeba Backup would assume that you really meant "abc" and use that. If you have created a bucket name which contains uppercase characters, e.g. "Abc", you'll have to tell Akeeba Backup so. Go to Akeeba Backup's Configuration page and find the Data Processing Engine drop down. Click the button next to it. A new pane opens below. Find the Lowercase bucket name check box and clear (deselect) it.
Warning | |
---|---|
Amazon clearly warns AGAINST using uppercase letters in your bucket names. In fact, we have found out that if your server is located in Europe there is no way it can connect to a bucket with mixed case letters. Maybe this happens with other areas as well, but we only have servers in the US and Europe to test with. In those cases you will get an error message stating that the signatures don't match, or that the bucket does not exist. If this is what you get, please try creating a new bucket with lowercase-only letters BEFORE trying any of the following instructions. |
Then, let's try making sure that the SSL setting doesn't cause the problem. First go to Akeeba Backup's Configuration page and find the Data Processing Engine drop down. Click the button next to it. A new pane opens below. Find the Use SSL checkbox and make sure it is not checked. Try a new backup. If your bucket name contains dots you MUST disable the Use SSL checkbox. This is a limitation of the Amazon S3 service due to the way their SSL certificate is set up. It is best to have a bucket name which consists of only lowercase letters (a-z), numbers (0-9) and dashes and which does not begin with a dash.
The other thing you have to check is that your host's firewall
allows access to Amazon S3. Ask them if they have a firewall which
blocks outgoing connections. In this case, please tell them to allow
TCP/IP connections to ports 80 and 443 of s3.amazonaws.com
.
If they request an IP, please tell them that this domain name is a
multicast one and they have to run host s3.amazonaws.com
from their server to obtain the IP. It doesn't matter if this sounds
like Chinese to you, your host's support technicians will understand
(or should, at the very least).
Finally, some hosts do not play very well with Amazon S3's multi-part upload feature which allows us to upload a very big archive file in 5Mb chunks. In this case you will have to follow Plan B which is to have Akeeba Backup split the archive file in small chunks, one file per chunk, and then upload each of those chunks in one go. This is a two-legged solution.
For the first leg of the solution, please go to Akeeba Backup's Configuration page and find the Data Processing Engine drop down. Click the button next to it. A new pane opens below. Check the Disable multipart uploads option and make sure that the Process each part immediately option is not checked.
Now, for the second leg, we have to do some trial and error.
Still in Akeeba Backup's Configuration page, find
the Archiver Engine drop-down and click on the
button next to it. A new pane opens
below. Find the Part size for split archives
option and select the 49.99
option. Try a new backup.
If it crashes while uploading files to Amazon S3, go back to this
option and try smaller values, i.e. 20
,
10
, 5
, 2
or even
1
, trying a new backup after setting each one of
those values.