While running the following command
ec2-upload-bundle --bucket http://bucket.1.s3.amazonaws.com --access-key 1234 --secret-key 5678 --manifest /tmp/image.manifest.xml
I got the following result
The specified bucket is not S3 v2 safe (see S3 documentation for details):
Are you sure you want to continue? [y/N]y
ERROR: Error talking to S3: Server.InvalidBucketName(400): The specified bucket is not valid.
After searching many unresolved questions on various forums I finally figured it out for my self.
It seems that when it wants the name of the bucket it is not actually looking for the entire address (URL) where the bucket can be located. As you can see above I supplied the URL (as per a right click copy url whilst hovering over my bucket in S3Fox). What the script is actually after is the bucket name only like this.
Interestingly enough it also works if you have two trailing slashes on the front like this
The giveaway for me (after checking a million other things) was the fact that the characters http: get printed to the screen for no real reason while running the ec2-upload-bundle script.
I am wondering if perhaps the creators of this script could put in some validation so that full URL’s are accepted as the bucket location.