Comment 2 for bug 711534

Revision history for this message
Neil Soman (neilsoman) wrote :

The command specified in the bug report doesn't work with AWS S3 unless the user has actually created the bucket somehow. I just tested this.

For instance, if you use the option "-b mybucket/abcd/efgh" S3 will correctly interpret this request (PUT to mybucket/abcd/efgh) as an empty put to the bucket "mybucket" with the keyname "abcd/efgh." Which is correct behavior.

The user must have already have a bucket, "mybucket." Otherwise the key "abcd/efgh" cannot be created because the bucket does not exist. Before the key can be created, the bucket needs to be created with a PUT to "mybucket"

"/"s are not allowed in the bucket name. The "/" is interpreted as part of the key. The bucket must exist for that key to be created.

So the bug report is partly right and partly wrong.

The real bug is that Walrus should be returning a 404 and not a 400 when someone tries to access "mybucket/abcd/efgh" if the bucket does not exist.

The command will not work on S3 or against Walrus if the bucket (the part of the string before the first "/") was never created, but the right error to send back is a 404 (no such bucket) and not a 400 (bad request).

This is fixed in revno 1257 in lp:eucalyptus.

Hope all this makes sense,
neil