Emit BucketAlreadyExists

References #5.
pull/16/head
Andrew Gaul 2014-08-20 23:37:41 -07:00
rodzic 1f8d9f47a8
commit 886c27e63a
2 zmienionych plików z 9 dodań i 3 usunięć

Wyświetl plik

@ -26,6 +26,10 @@ import com.google.common.base.Preconditions;
* http://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html
*/
enum S3ErrorCode {
BUCKET_ALREADY_EXISTS(HttpServletResponse.SC_FORBIDDEN,
"The requested bucket name is not available." +
" The bucket namespace is shared by all users of the system." +
" Please select a different name and try again."),
BUCKET_ALREADY_OWNED_BY_YOU(HttpServletResponse.SC_CONFLICT,
"Your previous request to create the named bucket" +
" succeeded and you already own it."),

Wyświetl plik

@ -68,6 +68,7 @@ import org.jclouds.blobstore.options.PutOptions;
import org.jclouds.domain.Location;
import org.jclouds.http.HttpResponseException;
import org.jclouds.io.ContentMetadata;
import org.jclouds.rest.AuthorizationException;
import org.jclouds.util.Strings2;
import org.jclouds.util.Throwables2;
import org.slf4j.Logger;
@ -318,9 +319,10 @@ final class S3ProxyHandler extends AbstractHandler {
S3ErrorCode.BUCKET_ALREADY_OWNED_BY_YOU,
Optional.of(" <BucketName>" + containerName +
"</BucketName>\r\n"));
} catch (RuntimeException re) {
logger.error("Error creating container: {}", re.getMessage());
response.setStatus(HttpServletResponse.SC_FORBIDDEN);
} catch (AuthorizationException ae) {
sendSimpleErrorResponse(response,
S3ErrorCode.BUCKET_ALREADY_EXISTS);
return;
}
}