2015-02-15 16:48:15 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								/ *  
						 
					
						
							
								
									
										
										
										
											2015-07-25 08:51:40 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								 *  Minio  Cloud  Storage ,  ( C )  2015  Minio ,  Inc . 
							 
						 
					
						
							
								
									
										
										
										
											2015-02-15 16:48:15 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Licensed  under  the  Apache  License ,  Version  2.0  ( the  "License" ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  you  may  not  use  this  file  except  in  compliance  with  the  License . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  You  may  obtain  a  copy  of  the  License  at 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *      http : //www.apache.org/licenses/LICENSE-2.0
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Unless  required  by  applicable  law  or  agreed  to  in  writing ,  software 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  distributed  under  the  License  is  distributed  on  an  "AS IS"  BASIS , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  WITHOUT  WARRANTIES  OR  CONDITIONS  OF  ANY  KIND ,  either  express  or  implied . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  See  the  License  for  the  specific  language  governing  permissions  and 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  limitations  under  the  License . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * / 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-08-19 07:23:42 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								package  cmd  
						 
					
						
							
								
									
										
										
										
											2015-02-11 19:23:15 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								import  (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									"encoding/xml" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									"net/http" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-09-19 15:52:01 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								// APIError structure
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								type  APIError  struct  {  
						 
					
						
							
								
									
										
										
										
											2015-02-11 19:23:15 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									Code            string 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									Description     string 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-06 13:07:19 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									HTTPStatusCode  int 
							 
						 
					
						
							
								
									
										
										
										
											2015-02-11 19:23:15 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-09-19 15:52:01 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								// APIErrorResponse - error response format
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								type  APIErrorResponse  struct  {  
						 
					
						
							
								
									
										
										
										
											2015-12-10 07:38:40 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									XMLName     xml . Name  ` xml:"Error" json:"-" ` 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									Code        string 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									Message     string 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									Key         string 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									BucketName  string 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									Resource    string 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									RequestID   string  ` xml:"RequestId" ` 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									HostID      string  ` xml:"HostId" ` 
							 
						 
					
						
							
								
									
										
										
										
											2015-02-11 19:23:15 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 18:24:52 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								// APIErrorCode type of error status.
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								type  APIErrorCode  int  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-04-23 07:28:13 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								// Error codes, non exhaustive list - http://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html
  
						 
					
						
							
								
									
										
										
										
											2015-02-11 19:23:15 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								const  (  
						 
					
						
							
								
									
										
										
										
											2016-03-10 18:24:52 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									ErrNone  APIErrorCode  =  iota 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrAccessDenied 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrBadDigest 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrEntityTooSmall 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrEntityTooLarge 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrIncompleteBody 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrInternalError 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrInvalidAccessKeyID 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrInvalidBucketName 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrInvalidDigest 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrInvalidRange 
							 
						 
					
						
							
								
									
										
										
										
											2017-03-04 08:32:04 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ErrInvalidCopyPartRange 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrInvalidCopyPartRangeSource 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 18:24:52 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									ErrInvalidMaxKeys 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrInvalidMaxUploads 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrInvalidMaxParts 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrInvalidPartNumberMarker 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrInvalidRequestBody 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrInvalidCopySource 
							 
						 
					
						
							
								
									
										
										
										
											2016-12-27 08:29:26 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ErrInvalidMetadataDirective 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 18:24:52 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									ErrInvalidCopyDest 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrInvalidPolicyDocument 
							 
						 
					
						
							
								
									
										
										
										
											2016-10-21 07:09:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ErrInvalidObjectState 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 18:24:52 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									ErrMalformedXML 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrMissingContentLength 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrMissingContentMD5 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrMissingRequestBodyError 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrNoSuchBucket 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrNoSuchBucketPolicy 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrNoSuchKey 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrNoSuchUpload 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrNotImplemented 
							 
						 
					
						
							
								
									
										
										
										
											2016-06-28 16:18:18 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									ErrPreconditionFailed 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 18:24:52 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									ErrRequestTimeTooSkewed 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrSignatureDoesNotMatch 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrMethodNotAllowed 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrInvalidPart 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrInvalidPartOrder 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrAuthorizationHeaderMalformed 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrMalformedPOSTRequest 
							 
						 
					
						
							
								
									
										
										
										
											2017-02-10 04:37:32 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ErrPOSTFileRequired 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 18:24:52 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									ErrSignatureVersionNotSupported 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrBucketNotEmpty 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrAllAccessDisabled 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrMalformedPolicy 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-31 11:04:51 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									ErrMissingFields 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrMissingCredTag 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrCredMalformed 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrInvalidRegion 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrInvalidService 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrInvalidRequestVersion 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrMissingSignTag 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrMissingSignHeadersTag 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrPolicyAlreadyExpired 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrMalformedDate 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-10 00:13:15 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									ErrMalformedPresignedDate 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrMalformedCredentialDate 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrMalformedCredentialRegion 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-31 11:04:51 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									ErrMalformedExpires 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-10 00:13:15 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									ErrNegativeExpires 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-31 11:04:51 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									ErrAuthHeaderEmpty 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrExpiredPresignRequest 
							 
						 
					
						
							
								
									
										
										
										
											2016-09-10 15:38:07 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ErrRequestNotReadyYet 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-10 00:13:15 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									ErrUnsignedHeaders 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-31 11:04:51 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									ErrMissingDateHeader 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrInvalidQuerySignatureAlgo 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrInvalidQueryParams 
							 
						 
					
						
							
								
									
										
										
										
											2016-05-03 18:19:04 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									ErrBucketAlreadyOwnedByYou 
							 
						 
					
						
							
								
									
										
										
										
											2017-01-04 15:39:22 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ErrInvalidDuration 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 18:24:52 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									// Add new error codes here.
 
							 
						 
					
						
							
								
									
										
										
										
											2016-04-21 08:23:23 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-07-24 13:51:12 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									// Bucket notification related errors.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrEventNotification 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrARNNotification 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrRegionNotification 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrOverlappingFilterNotification 
							 
						 
					
						
							
								
									
										
										
										
											2016-07-26 08:53:55 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									ErrFilterNameInvalid 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrFilterNamePrefix 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrFilterNameSuffix 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-19 03:00:01 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									ErrFilterValueInvalid 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-24 09:42:30 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ErrOverlappingConfigs 
							 
						 
					
						
							
								
									
										
										
										
											2016-07-24 13:51:12 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-07-05 16:04:50 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									// S3 extended errors.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrContentSHA256Mismatch 
							 
						 
					
						
							
								
									
										
										
										
											2016-07-21 03:40:20 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-07-05 16:04:50 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									// Add new extended error codes here.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-05-09 03:36:16 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									// Minio extended errors.
 
							 
						 
					
						
							
								
									
										
										
										
											2016-05-06 11:24:29 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									ErrReadQuorum 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrWriteQuorum 
							 
						 
					
						
							
								
									
										
										
										
											2016-05-09 03:36:16 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									ErrStorageFull 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrObjectExistsAsDirectory 
							 
						 
					
						
							
								
									
										
										
										
											2016-06-09 16:53:56 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									ErrPolicyNesting 
							 
						 
					
						
							
								
									
										
										
										
											2016-07-10 08:11:08 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									ErrInvalidObjectName 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-11 09:47:49 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ErrServerNotInitialized 
							 
						 
					
						
							
								
									
										
										
										
											2016-07-05 16:04:50 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									// Add new extended error codes here.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// Please open a https://github.com/minio/minio/issues before adding
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// new error codes here.
 
							 
						 
					
						
							
								
									
										
										
										
											2017-01-18 06:25:59 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrAdminInvalidAccessKey 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrAdminInvalidSecretKey 
							 
						 
					
						
							
								
									
										
										
										
											2017-02-28 03:40:27 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ErrAdminConfigNoQuorum 
							 
						 
					
						
							
								
									
										
										
										
											2015-04-23 07:28:13 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 18:24:52 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								// error code to APIError structure, these fields carry respective
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// descriptions for all the error responses.
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								var  errorCodeResponse  =  map [ APIErrorCode ] APIError {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrInvalidCopyDest :  { 
							 
						 
					
						
							
								
									
										
										
										
											2016-02-27 19:04:52 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										Code :            "InvalidRequest" , 
							 
						 
					
						
							
								
									
										
										
										
											2016-12-27 08:29:26 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										Description :     "This copy request is illegal because it is trying to copy an object to itself without changing the object's metadata, storage class, website redirect location or encryption attributes." , 
							 
						 
					
						
							
								
									
										
										
										
											2016-02-27 19:04:52 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusBadRequest , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 18:24:52 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									ErrInvalidCopySource :  { 
							 
						 
					
						
							
								
									
										
										
										
											2016-02-27 19:04:52 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										Code :            "InvalidArgument" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Description :     "Copy Source must mention the source bucket and key: sourcebucket/sourcekey." , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusBadRequest , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
									
										
										
										
											2016-12-27 08:29:26 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ErrInvalidMetadataDirective :  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Code :            "InvalidArgument" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Description :     "Unknown metadata directive." , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusBadRequest , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 18:24:52 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									ErrInvalidRequestBody :  { 
							 
						 
					
						
							
								
									
										
										
										
											2016-02-27 19:04:52 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										Code :            "InvalidArgument" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Description :     "Body shouldn't be set for this request." , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusBadRequest , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 18:24:52 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									ErrInvalidMaxUploads :  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-07-17 08:22:45 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										Code :            "InvalidArgument" , 
							 
						 
					
						
							
								
									
										
										
										
											2016-07-05 16:06:30 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										Description :     "Argument max-uploads must be an integer between 0 and 2147483647" , 
							 
						 
					
						
							
								
									
										
										
										
											2015-07-17 08:22:45 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusBadRequest , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 18:24:52 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									ErrInvalidMaxKeys :  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-07-17 08:22:45 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										Code :            "InvalidArgument" , 
							 
						 
					
						
							
								
									
										
										
										
											2016-07-05 16:06:30 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										Description :     "Argument maxKeys must be an integer between 0 and 2147483647" , 
							 
						 
					
						
							
								
									
										
										
										
											2015-07-17 08:22:45 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusBadRequest , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 18:24:52 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									ErrInvalidMaxParts :  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-07-17 08:22:45 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										Code :            "InvalidArgument" , 
							 
						 
					
						
							
								
									
										
										
										
											2016-07-05 16:06:30 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										Description :     "Argument max-parts must be an integer between 0 and 2147483647" , 
							 
						 
					
						
							
								
									
										
										
										
											2015-07-17 08:22:45 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusBadRequest , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 18:24:52 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									ErrInvalidPartNumberMarker :  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-07-17 08:22:45 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										Code :            "InvalidArgument" , 
							 
						 
					
						
							
								
									
										
										
										
											2015-09-19 05:48:01 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										Description :     "Argument partNumberMarker must be an integer." , 
							 
						 
					
						
							
								
									
										
										
										
											2015-07-17 08:22:45 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusBadRequest , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 18:24:52 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									ErrInvalidPolicyDocument :  { 
							 
						 
					
						
							
								
									
										
										
											
												accessPolicy: Implement Put, Get, Delete access policy.
This patch implements Get,Put,Delete bucket policies
Supporting - http://docs.aws.amazon.com/AmazonS3/latest/dev/access-policy-language-overview.html
Currently supports following actions.
   "*":                             true,
   "s3:*":                          true,
   "s3:GetObject":                  true,
   "s3:ListBucket":                 true,
   "s3:PutObject":                  true,
   "s3:CreateBucket":               true,
   "s3:GetBucketLocation":          true,
   "s3:DeleteBucket":               true,
   "s3:DeleteObject":               true,
   "s3:AbortMultipartUpload":       true,
   "s3:ListBucketMultipartUploads": true,
   "s3:ListMultipartUploadParts":   true,
following conditions for "StringEquals" and "StringNotEquals"
   "s3:prefix", "s3:max-keys"
											 
										 
										
											2016-02-04 08:46:56 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										Code :            "InvalidPolicyDocument" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Description :     "The content of the form does not meet the conditions specified in the policy document." , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusBadRequest , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 18:24:52 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									ErrAccessDenied :  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-02-11 19:23:15 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										Code :            "AccessDenied" , 
							 
						 
					
						
							
								
									
										
										
										
											2015-09-19 05:48:01 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										Description :     "Access Denied." , 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-06 13:07:19 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusForbidden , 
							 
						 
					
						
							
								
									
										
										
										
											2015-02-11 19:23:15 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 18:24:52 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									ErrBadDigest :  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-02-11 19:23:15 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										Code :            "BadDigest" , 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-06 08:43:48 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										Description :     "The Content-Md5 you specified did not match what we received." , 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-06 13:07:19 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusBadRequest , 
							 
						 
					
						
							
								
									
										
										
										
											2015-02-11 19:23:15 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 18:24:52 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									ErrEntityTooSmall :  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-02-11 19:23:15 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										Code :            "EntityTooSmall" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Description :     "Your proposed upload is smaller than the minimum allowed object size." , 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-06 13:07:19 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusBadRequest , 
							 
						 
					
						
							
								
									
										
										
										
											2015-02-11 19:23:15 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 18:24:52 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									ErrEntityTooLarge :  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-02-11 19:23:15 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										Code :            "EntityTooLarge" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Description :     "Your proposed upload exceeds the maximum allowed object size." , 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-06 13:07:19 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusBadRequest , 
							 
						 
					
						
							
								
									
										
										
										
											2015-02-11 19:23:15 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 18:24:52 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									ErrIncompleteBody :  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-02-11 19:23:15 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										Code :            "IncompleteBody" , 
							 
						 
					
						
							
								
									
										
										
										
											2015-09-19 05:48:01 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										Description :     "You did not provide the number of bytes specified by the Content-Length HTTP header." , 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-06 13:07:19 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusBadRequest , 
							 
						 
					
						
							
								
									
										
										
										
											2015-02-11 19:23:15 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 18:24:52 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									ErrInternalError :  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-02-11 19:23:15 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										Code :            "InternalError" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Description :     "We encountered an internal error, please try again." , 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-06 13:07:19 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusInternalServerError , 
							 
						 
					
						
							
								
									
										
										
										
											2015-02-11 19:23:15 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 18:24:52 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									ErrInvalidAccessKeyID :  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-06 13:07:19 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										Code :            "InvalidAccessKeyID" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Description :     "The access key ID you provided does not exist in our records." , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusForbidden , 
							 
						 
					
						
							
								
									
										
										
										
											2015-02-11 19:23:15 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 18:24:52 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									ErrInvalidBucketName :  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-02-11 19:23:15 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										Code :            "InvalidBucketName" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Description :     "The specified bucket is not valid." , 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-06 13:07:19 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusBadRequest , 
							 
						 
					
						
							
								
									
										
										
										
											2015-02-11 19:23:15 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 18:24:52 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									ErrInvalidDigest :  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-02-11 19:23:15 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										Code :            "InvalidDigest" , 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-06 08:43:48 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										Description :     "The Content-Md5 you specified is not valid." , 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-06 13:07:19 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusBadRequest , 
							 
						 
					
						
							
								
									
										
										
										
											2015-02-11 19:23:15 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 18:24:52 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									ErrInvalidRange :  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-02-11 19:23:15 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										Code :            "InvalidRange" , 
							 
						 
					
						
							
								
									
										
										
										
											2016-07-05 16:06:30 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										Description :     "The requested range is not satisfiable" , 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-06 13:07:19 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusRequestedRangeNotSatisfiable , 
							 
						 
					
						
							
								
									
										
										
										
											2015-02-11 19:23:15 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 18:24:52 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									ErrMalformedXML :  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-02-11 19:23:15 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										Code :            "MalformedXML" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Description :     "The XML you provided was not well-formed or did not validate against our published schema." , 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-06 13:07:19 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusBadRequest , 
							 
						 
					
						
							
								
									
										
										
										
											2015-02-11 19:23:15 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 18:24:52 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									ErrMissingContentLength :  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-02-11 19:23:15 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										Code :            "MissingContentLength" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Description :     "You must provide the Content-Length HTTP header." , 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-06 13:07:19 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusLengthRequired , 
							 
						 
					
						
							
								
									
										
										
										
											2015-02-11 19:23:15 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 18:24:52 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									ErrMissingContentMD5 :  { 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-06 08:43:48 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										Code :            "MissingContentMD5" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Description :     "Missing required header for this request: Content-Md5." , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusBadRequest , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 18:24:52 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									ErrMissingRequestBodyError :  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-02-11 19:23:15 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										Code :            "MissingRequestBodyError" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Description :     "Request body is empty." , 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-06 13:07:19 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusLengthRequired , 
							 
						 
					
						
							
								
									
										
										
										
											2015-02-11 19:23:15 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 18:24:52 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									ErrNoSuchBucket :  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-02-11 19:23:15 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										Code :            "NoSuchBucket" , 
							 
						 
					
						
							
								
									
										
										
										
											2016-07-05 16:06:30 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										Description :     "The specified bucket does not exist" , 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-06 13:07:19 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusNotFound , 
							 
						 
					
						
							
								
									
										
										
										
											2015-02-11 19:23:15 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 18:24:52 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									ErrNoSuchBucketPolicy :  { 
							 
						 
					
						
							
								
									
										
										
											
												accessPolicy: Implement Put, Get, Delete access policy.
This patch implements Get,Put,Delete bucket policies
Supporting - http://docs.aws.amazon.com/AmazonS3/latest/dev/access-policy-language-overview.html
Currently supports following actions.
   "*":                             true,
   "s3:*":                          true,
   "s3:GetObject":                  true,
   "s3:ListBucket":                 true,
   "s3:PutObject":                  true,
   "s3:CreateBucket":               true,
   "s3:GetBucketLocation":          true,
   "s3:DeleteBucket":               true,
   "s3:DeleteObject":               true,
   "s3:AbortMultipartUpload":       true,
   "s3:ListBucketMultipartUploads": true,
   "s3:ListMultipartUploadParts":   true,
following conditions for "StringEquals" and "StringNotEquals"
   "s3:prefix", "s3:max-keys"
											 
										 
										
											2016-02-04 08:46:56 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										Code :            "NoSuchBucketPolicy" , 
							 
						 
					
						
							
								
									
										
										
										
											2016-09-06 17:18:02 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										Description :     "The bucket policy does not exist" , 
							 
						 
					
						
							
								
									
										
										
											
												accessPolicy: Implement Put, Get, Delete access policy.
This patch implements Get,Put,Delete bucket policies
Supporting - http://docs.aws.amazon.com/AmazonS3/latest/dev/access-policy-language-overview.html
Currently supports following actions.
   "*":                             true,
   "s3:*":                          true,
   "s3:GetObject":                  true,
   "s3:ListBucket":                 true,
   "s3:PutObject":                  true,
   "s3:CreateBucket":               true,
   "s3:GetBucketLocation":          true,
   "s3:DeleteBucket":               true,
   "s3:DeleteObject":               true,
   "s3:AbortMultipartUpload":       true,
   "s3:ListBucketMultipartUploads": true,
   "s3:ListMultipartUploadParts":   true,
following conditions for "StringEquals" and "StringNotEquals"
   "s3:prefix", "s3:max-keys"
											 
										 
										
											2016-02-04 08:46:56 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusNotFound , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 18:24:52 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									ErrNoSuchKey :  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-02-11 19:23:15 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										Code :            "NoSuchKey" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Description :     "The specified key does not exist." , 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-06 13:07:19 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusNotFound , 
							 
						 
					
						
							
								
									
										
										
										
											2015-02-11 19:23:15 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 18:24:52 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									ErrNoSuchUpload :  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-02-11 19:23:15 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										Code :            "NoSuchUpload" , 
							 
						 
					
						
							
								
									
										
										
										
											2016-07-23 08:05:40 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										Description :     "The specified multipart upload does not exist. The upload ID may be invalid, or the upload may have been aborted or completed." , 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-06 13:07:19 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusNotFound , 
							 
						 
					
						
							
								
									
										
										
										
											2015-02-11 19:23:15 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 18:24:52 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									ErrNotImplemented :  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-02-11 19:23:15 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										Code :            "NotImplemented" , 
							 
						 
					
						
							
								
									
										
										
										
											2016-07-05 16:06:30 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										Description :     "A header you provided implies functionality that is not implemented" , 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-06 13:07:19 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusNotImplemented , 
							 
						 
					
						
							
								
									
										
										
										
											2015-02-11 19:23:15 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
									
										
										
										
											2016-06-28 16:18:18 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									ErrPreconditionFailed :  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Code :            "PreconditionFailed" , 
							 
						 
					
						
							
								
									
										
										
										
											2016-07-10 03:13:40 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										Description :     "At least one of the pre-conditions you specified did not hold" , 
							 
						 
					
						
							
								
									
										
										
										
											2016-06-28 16:18:18 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusPreconditionFailed , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 18:24:52 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									ErrRequestTimeTooSkewed :  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-02-11 19:23:15 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										Code :            "RequestTimeTooSkewed" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Description :     "The difference between the request time and the server's time is too large." , 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-06 13:07:19 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusForbidden , 
							 
						 
					
						
							
								
									
										
										
										
											2015-02-11 19:23:15 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 18:24:52 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									ErrSignatureDoesNotMatch :  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-02-11 19:23:15 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										Code :            "SignatureDoesNotMatch" , 
							 
						 
					
						
							
								
									
										
										
										
											2016-06-22 03:10:18 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										Description :     "The request signature we calculated does not match the signature you provided. Check your key and signing method." , 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-06 13:07:19 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusForbidden , 
							 
						 
					
						
							
								
									
										
										
										
											2015-02-11 19:23:15 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 18:24:52 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									ErrMethodNotAllowed :  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-04-27 18:54:49 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										Code :            "MethodNotAllowed" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Description :     "The specified method is not allowed against this resource." , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusMethodNotAllowed , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 18:24:52 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									ErrInvalidPart :  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-08 13:43:19 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										Code :            "InvalidPart" , 
							 
						 
					
						
							
								
									
										
										
										
											2015-09-19 05:48:01 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										Description :     "One or more of the specified parts could not be found." , 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-08 13:43:19 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusBadRequest , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 18:24:52 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									ErrInvalidPartOrder :  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-08 17:02:51 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										Code :            "InvalidPartOrder" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Description :     "The list of parts was not in ascending order. The parts list must be specified in order by part number." , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusBadRequest , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
									
										
										
										
											2016-10-21 07:09:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ErrInvalidObjectState :  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Code :            "InvalidObjectState" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Description :     "The operation is not valid for the current state of the object." , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusForbidden , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 18:24:52 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									ErrAuthorizationHeaderMalformed :  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-09-19 05:48:01 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										Code :            "AuthorizationHeaderMalformed" , 
							 
						 
					
						
							
								
									
										
										
										
											2015-11-24 05:39:57 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										Description :     "The authorization header is malformed; the region is wrong; expecting 'us-east-1'." , 
							 
						 
					
						
							
								
									
										
										
										
											2015-09-19 05:48:01 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusBadRequest , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 18:24:52 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									ErrMalformedPOSTRequest :  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-10-02 14:51:17 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										Code :            "MalformedPOSTRequest" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Description :     "The body of your POST request is not well-formed multipart/form-data." , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusBadRequest , 
							 
						 
					
						
							
								
									
										
										
										
											2015-12-10 07:38:40 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
									
										
										
										
											2017-02-10 04:37:32 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ErrPOSTFileRequired :  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Code :            "InvalidArgument" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Description :     "POST requires exactly one file upload per request." , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusBadRequest , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 18:24:52 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									ErrSignatureVersionNotSupported :  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-12-10 07:38:40 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										Code :            "InvalidRequest" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Description :     "The authorization mechanism you have provided is not supported. Please use AWS4-HMAC-SHA256." , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusBadRequest , 
							 
						 
					
						
							
								
									
										
										
										
											2015-10-02 14:51:17 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 18:24:52 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									ErrBucketNotEmpty :  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-10-17 02:26:01 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										Code :            "BucketNotEmpty" , 
							 
						 
					
						
							
								
									
										
										
										
											2016-09-06 17:18:02 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										Description :     "The bucket you tried to delete is not empty" , 
							 
						 
					
						
							
								
									
										
										
										
											2015-10-17 02:26:01 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusConflict , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 18:24:52 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									ErrAllAccessDisabled :  { 
							 
						 
					
						
							
								
									
										
										
										
											2016-02-17 10:50:36 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										Code :            "AllAccessDisabled" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Description :     "All access to this bucket has been disabled." , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusForbidden , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 18:24:52 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									ErrMalformedPolicy :  { 
							 
						 
					
						
							
								
									
										
										
											
												accessPolicy: Implement Put, Get, Delete access policy.
This patch implements Get,Put,Delete bucket policies
Supporting - http://docs.aws.amazon.com/AmazonS3/latest/dev/access-policy-language-overview.html
Currently supports following actions.
   "*":                             true,
   "s3:*":                          true,
   "s3:GetObject":                  true,
   "s3:ListBucket":                 true,
   "s3:PutObject":                  true,
   "s3:CreateBucket":               true,
   "s3:GetBucketLocation":          true,
   "s3:DeleteBucket":               true,
   "s3:DeleteObject":               true,
   "s3:AbortMultipartUpload":       true,
   "s3:ListBucketMultipartUploads": true,
   "s3:ListMultipartUploadParts":   true,
following conditions for "StringEquals" and "StringNotEquals"
   "s3:prefix", "s3:max-keys"
											 
										 
										
											2016-02-04 08:46:56 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										Code :            "MalformedPolicy" , 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-31 11:04:51 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										Description :     "Policy has invalid resource." , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusBadRequest , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrMissingFields :  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Code :            "MissingFields" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Description :     "Missing fields in request." , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusBadRequest , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrMissingCredTag :  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Code :            "InvalidRequest" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Description :     "Missing Credential field for this request." , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusBadRequest , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrCredMalformed :  { 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-10 00:13:15 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										Code :            "AuthorizationQueryParametersError" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Description :     "Error parsing the X-Amz-Credential parameter; the Credential is mal-formed; expecting \"<YOUR-AKID>/YYYYMMDD/REGION/SERVICE/aws4_request\"." , 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-31 11:04:51 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusBadRequest , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrMalformedDate :  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Code :            "MalformedDate" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Description :     "Invalid date format header, expected to be in ISO8601, RFC1123 or RFC1123Z time format." , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusBadRequest , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-10 00:13:15 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									ErrMalformedPresignedDate :  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Code :            "AuthorizationQueryParametersError" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Description :     "X-Amz-Date must be in the ISO8601 Long Format \"yyyyMMdd'T'HHmmss'Z'\"" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusBadRequest , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// FIXME: Should contain the invalid param set as seen in https://github.com/minio/minio/issues/2385.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// right Description:    "Error parsing the X-Amz-Credential parameter; incorrect date format \"%s\". This date in the credential must be in the format \"yyyyMMdd\".",
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// Need changes to make sure variable messages can be constructed.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrMalformedCredentialDate :  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Code :            "AuthorizationQueryParametersError" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Description :     "Error parsing the X-Amz-Credential parameter; incorrect date format \"%s\". This date in the credential must be in the format \"yyyyMMdd\"." , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusBadRequest , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// FIXME: Should contain the invalid param set as seen in https://github.com/minio/minio/issues/2385.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// right Description:    "Error parsing the X-Amz-Credential parameter; the region 'us-east-' is wrong; expecting 'us-east-1'".
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// Need changes to make sure variable messages can be constructed.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrMalformedCredentialRegion :  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Code :            "AuthorizationQueryParametersError" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Description :     "Error parsing the X-Amz-Credential parameter; the region is wrong;" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusBadRequest , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-31 11:04:51 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									ErrInvalidRegion :  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Code :            "InvalidRegion" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Description :     "Region does not match." , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusBadRequest , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-10 00:13:15 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									// FIXME: Should contain the invalid param set as seen in https://github.com/minio/minio/issues/2385.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// right Description:   "Error parsing the X-Amz-Credential parameter; incorrect service \"s4\". This endpoint belongs to \"s3\".".
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// Need changes to make sure variable messages can be constructed.
 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-31 11:04:51 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									ErrInvalidService :  { 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-10 00:13:15 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										Code :            "AuthorizationQueryParametersError" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Description :     "Error parsing the X-Amz-Credential parameter; incorrect service. This endpoint belongs to \"s3\"." , 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-31 11:04:51 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusBadRequest , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-10 00:13:15 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									// FIXME: Should contain the invalid param set as seen in https://github.com/minio/minio/issues/2385.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// Description:   "Error parsing the X-Amz-Credential parameter; incorrect terminal "aws4_reque". This endpoint uses "aws4_request".
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// Need changes to make sure variable messages can be constructed.
 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-31 11:04:51 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									ErrInvalidRequestVersion :  { 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-10 00:13:15 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										Code :            "AuthorizationQueryParametersError" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Description :     "Error parsing the X-Amz-Credential parameter; incorrect terminal. This endpoint uses \"aws4_request\"." , 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-31 11:04:51 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusBadRequest , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrMissingSignTag :  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Code :            "AccessDenied" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Description :     "Signature header missing Signature field." , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusBadRequest , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrMissingSignHeadersTag :  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Code :            "InvalidArgument" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Description :     "Signature header missing SignedHeaders field." , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusBadRequest , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrPolicyAlreadyExpired :  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Code :            "AccessDenied" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Description :     "Invalid according to Policy: Policy expired." , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusBadRequest , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrMalformedExpires :  { 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-10 00:13:15 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										Code :            "AuthorizationQueryParametersError" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Description :     "X-Amz-Expires should be a number" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusBadRequest , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrNegativeExpires :  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Code :            "AuthorizationQueryParametersError" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Description :     "X-Amz-Expires must be non-negative" , 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-31 11:04:51 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusBadRequest , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrAuthHeaderEmpty :  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Code :            "InvalidArgument" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Description :     "Authorization header is invalid -- one and only one ' ' (space) required." , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusBadRequest , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrMissingDateHeader :  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Code :            "AccessDenied" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Description :     "AWS authentication requires a valid Date or x-amz-date header" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusBadRequest , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrInvalidQuerySignatureAlgo :  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Code :            "AuthorizationQueryParametersError" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Description :     "X-Amz-Algorithm only supports \"AWS4-HMAC-SHA256\"." , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusBadRequest , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrExpiredPresignRequest :  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Code :            "AccessDenied" , 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-10 00:13:15 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										Description :     "Request has expired" , 
							 
						 
					
						
							
								
									
										
										
										
											2016-09-06 17:18:02 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusForbidden , 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-10 00:13:15 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
									
										
										
										
											2016-09-10 15:38:07 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ErrRequestNotReadyYet :  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Code :            "AccessDenied" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Description :     "Request is not valid yet" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusForbidden , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-21 14:10:08 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									// FIXME: Actual XML error response also contains the header which missed in list of signed header parameters.
 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-10 00:13:15 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									ErrUnsignedHeaders :  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Code :            "AccessDenied" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Description :     "There were headers present in the request which were not signed" , 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-31 11:04:51 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusBadRequest , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrInvalidQueryParams :  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Code :            "AuthorizationQueryParametersError" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Description :     "Query-string authentication version 4 requires the X-Amz-Algorithm, X-Amz-Credential, X-Amz-Signature, X-Amz-Date, X-Amz-SignedHeaders, and X-Amz-Expires parameters." , 
							 
						 
					
						
							
								
									
										
										
											
												accessPolicy: Implement Put, Get, Delete access policy.
This patch implements Get,Put,Delete bucket policies
Supporting - http://docs.aws.amazon.com/AmazonS3/latest/dev/access-policy-language-overview.html
Currently supports following actions.
   "*":                             true,
   "s3:*":                          true,
   "s3:GetObject":                  true,
   "s3:ListBucket":                 true,
   "s3:PutObject":                  true,
   "s3:CreateBucket":               true,
   "s3:GetBucketLocation":          true,
   "s3:DeleteBucket":               true,
   "s3:DeleteObject":               true,
   "s3:AbortMultipartUpload":       true,
   "s3:ListBucketMultipartUploads": true,
   "s3:ListMultipartUploadParts":   true,
following conditions for "StringEquals" and "StringNotEquals"
   "s3:prefix", "s3:max-keys"
											 
										 
										
											2016-02-04 08:46:56 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusBadRequest , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
									
										
										
										
											2016-05-03 18:19:04 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									ErrBucketAlreadyOwnedByYou :  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Code :            "BucketAlreadyOwnedByYou" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Description :     "Your previous request to create the named bucket succeeded and you already own it." , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusConflict , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
									
										
										
										
											2017-01-04 15:39:22 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ErrInvalidDuration :  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Code :            "InvalidDuration" , 
							 
						 
					
						
							
								
									
										
										
										
											2017-02-02 03:17:30 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										Description :     "Duration provided in the request is invalid." , 
							 
						 
					
						
							
								
									
										
										
										
											2017-01-04 15:39:22 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusBadRequest , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
									
										
										
										
											2016-07-05 16:04:50 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-07-24 13:51:12 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									/// Bucket notification related errors.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrEventNotification :  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Code :            "InvalidArgument" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Description :     "A specified event is not supported for notifications." , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusBadRequest , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrARNNotification :  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Code :            "InvalidArgument" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Description :     "A specified destination ARN does not exist or is not well-formed. Verify the destination ARN." , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusBadRequest , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrRegionNotification :  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Code :            "InvalidArgument" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Description :     "A specified destination is in a different region than the bucket. You must use a destination that resides in the same region as the bucket." , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusBadRequest , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrOverlappingFilterNotification :  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Code :            "InvalidArgument" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Description :     "An object key name filtering rule defined with overlapping prefixes, overlapping suffixes, or overlapping combinations of prefixes and suffixes for the same event types." , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusBadRequest , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
									
										
										
										
											2016-07-26 08:53:55 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									ErrFilterNameInvalid :  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Code :            "InvalidArgument" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Description :     "filter rule name must be either prefix or suffix" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusBadRequest , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrFilterNamePrefix :  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Code :            "InvalidArgument" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Description :     "Cannot specify more than one prefix rule in a filter." , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusBadRequest , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrFilterNameSuffix :  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Code :            "InvalidArgument" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Description :     "Cannot specify more than one suffix rule in a filter." , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusBadRequest , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-19 03:00:01 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									ErrFilterValueInvalid :  { 
							 
						 
					
						
							
								
									
										
										
										
											2016-07-26 08:53:55 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										Code :            "InvalidArgument" , 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-19 03:00:01 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										Description :     "Size of filter rule value cannot exceed 1024 bytes in UTF-8 representation" , 
							 
						 
					
						
							
								
									
										
										
										
											2016-07-26 08:53:55 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusBadRequest , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-24 09:42:30 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ErrOverlappingConfigs :  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Code :            "InvalidArgument" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Description :     "Configurations overlap. Configurations on the same bucket cannot share a common event type." , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusBadRequest , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
									
										
										
										
											2017-03-04 08:32:04 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ErrInvalidCopyPartRange :  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Code :            "InvalidArgument" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Description :     "The x-amz-copy-source-range value must be of the form bytes=first-last where first and last are the zero-based offsets of the first and last bytes to copy" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusBadRequest , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrInvalidCopyPartRangeSource :  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Code :            "InvalidArgument" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Description :     "Range specified is not valid for source object" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusBadRequest , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
									
										
										
										
											2016-07-24 13:51:12 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-07-05 16:04:50 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									/// S3 extensions.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrContentSHA256Mismatch :  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Code :            "XAmzContentSHA256Mismatch" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Description :     "The provided 'x-amz-content-sha256' header does not match what was computed." , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusBadRequest , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-05-09 03:36:16 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									/// Minio extensions.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrStorageFull :  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Code :            "XMinioStorageFull" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Description :     "Storage backend has reached its minimum free disk threshold. Please delete few objects to proceed." , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusInternalServerError , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrObjectExistsAsDirectory :  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Code :            "XMinioObjectExistsAsDirectory" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Description :     "Object name already exists as a directory." , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusConflict , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrReadQuorum :  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Code :            "XMinioReadQuorum" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Description :     "Multiple disk failures, unable to reconstruct data." , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusServiceUnavailable , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrWriteQuorum :  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Code :            "XMinioWriteQuorum" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Description :     "Multiple disks failures, unable to write data." , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusServiceUnavailable , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
									
										
										
										
											2016-06-09 16:53:56 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									ErrPolicyNesting :  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Code :            "XMinioPolicyNesting" , 
							 
						 
					
						
							
								
									
										
										
										
											2016-11-24 09:31:11 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										Description :     "New bucket policy conflicts with an existing policy. Please try again with new prefix." , 
							 
						 
					
						
							
								
									
										
										
										
											2016-06-09 16:53:56 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusConflict , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
									
										
										
										
											2016-07-10 08:11:08 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									ErrInvalidObjectName :  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Code :            "XMinioInvalidObjectName" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Description :     "Object name contains unsupported characters. Unsupported characters are `^*|\\\"" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusBadRequest , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-11 09:47:49 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ErrServerNotInitialized :  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Code :            "XMinioServerNotInitialized" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Description :     "Server not initialized, please try again." , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusServiceUnavailable , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
									
										
										
										
											2017-01-18 06:25:59 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ErrAdminInvalidAccessKey :  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Code :            "XMinioAdminInvalidAccessKey" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Description :     "The access key is invalid." , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusBadRequest , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ErrAdminInvalidSecretKey :  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Code :            "XMinioAdminInvalidSecretKey" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Description :     "The secret key is invalid." , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusBadRequest , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
									
										
										
										
											2017-02-28 03:40:27 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ErrAdminConfigNoQuorum :  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Code :            "XMinioAdminConfigNoQuorum" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Description :     "Configuration update failed because server quorum was not met" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										HTTPStatusCode :  http . StatusServiceUnavailable , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} , 
							 
						 
					
						
							
								
									
										
										
										
											2017-01-18 06:25:59 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 18:24:52 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									// Add your error structure here.
 
							 
						 
					
						
							
								
									
										
										
										
											2015-02-11 19:23:15 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-05-06 11:24:29 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								// toAPIErrorCode - Converts embedded errors. Convenience
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// function written to handle all cases where we have known types of
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// errors returned by underlying layers.
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								func  toAPIErrorCode ( err  error )  ( apiErr  APIErrorCode )  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  err  ==  nil  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										return  ErrNone 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2016-11-22 05:51:05 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-08-26 00:39:01 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									err  =  errorCause ( err ) 
							 
						 
					
						
							
								
									
										
										
										
											2016-05-06 11:24:29 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									// Verify if the underlying error is signature mismatch.
 
							 
						 
					
						
							
								
									
										
										
										
											2016-07-05 16:04:50 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									switch  err  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									case  errSignatureMismatch : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										apiErr  =  ErrSignatureDoesNotMatch 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									case  errContentSHA256Mismatch : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										apiErr  =  ErrContentSHA256Mismatch 
							 
						 
					
						
							
								
									
										
										
										
											2017-01-31 07:44:42 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									case  errDataTooLarge : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										apiErr  =  ErrEntityTooLarge 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									case  errDataTooSmall : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										apiErr  =  ErrEntityTooSmall 
							 
						 
					
						
							
								
									
										
										
										
											2017-02-08 04:51:43 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									case  errInvalidAccessKeyLength : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										apiErr  =  ErrAdminInvalidAccessKey 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									case  errInvalidSecretKeyLength : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										apiErr  =  ErrAdminInvalidSecretKey 
							 
						 
					
						
							
								
									
										
										
										
											2016-07-05 16:04:50 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2016-11-22 05:51:05 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-07-05 16:04:50 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									if  apiErr  !=  ErrNone  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										// If there was a match in the above switch case.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										return  apiErr 
							 
						 
					
						
							
								
									
										
										
										
											2016-05-06 11:24:29 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2016-11-22 05:51:05 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-05-06 11:24:29 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									switch  err . ( type )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									case  StorageFull : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										apiErr  =  ErrStorageFull 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									case  BadDigest : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										apiErr  =  ErrBadDigest 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									case  IncompleteBody : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										apiErr  =  ErrIncompleteBody 
							 
						 
					
						
							
								
									
										
										
										
											2016-05-09 03:36:16 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									case  ObjectExistsAsDirectory : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										apiErr  =  ErrObjectExistsAsDirectory 
							 
						 
					
						
							
								
									
										
										
										
											2016-10-21 07:09:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									case  PrefixAccessDenied : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										apiErr  =  ErrAccessDenied 
							 
						 
					
						
							
								
									
										
										
										
											2016-05-06 11:24:29 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									case  BucketNameInvalid : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										apiErr  =  ErrInvalidBucketName 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									case  BucketNotFound : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										apiErr  =  ErrNoSuchBucket 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									case  BucketNotEmpty : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										apiErr  =  ErrBucketNotEmpty 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									case  BucketExists : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										apiErr  =  ErrBucketAlreadyOwnedByYou 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									case  ObjectNotFound : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										apiErr  =  ErrNoSuchKey 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									case  ObjectNameInvalid : 
							 
						 
					
						
							
								
									
										
										
										
											2016-07-10 08:11:08 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										apiErr  =  ErrInvalidObjectName 
							 
						 
					
						
							
								
									
										
										
										
											2016-05-06 11:24:29 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									case  InvalidUploadID : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										apiErr  =  ErrNoSuchUpload 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									case  InvalidPart : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										apiErr  =  ErrInvalidPart 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									case  InsufficientWriteQuorum : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										apiErr  =  ErrWriteQuorum 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									case  InsufficientReadQuorum : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										apiErr  =  ErrReadQuorum 
							 
						 
					
						
							
								
									
										
										
										
											2016-09-15 16:44:19 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									case  UnsupportedDelimiter : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										apiErr  =  ErrNotImplemented 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									case  InvalidMarkerPrefixCombination : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										apiErr  =  ErrNotImplemented 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									case  InvalidUploadIDKeyCombination : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										apiErr  =  ErrNotImplemented 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									case  MalformedUploadID : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										apiErr  =  ErrNoSuchUpload 
							 
						 
					
						
							
								
									
										
										
										
											2016-05-09 03:06:05 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									case  PartTooSmall : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										apiErr  =  ErrEntityTooSmall 
							 
						 
					
						
							
								
									
										
										
										
											2016-10-03 06:51:49 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									case  SHA256Mismatch : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										apiErr  =  ErrContentSHA256Mismatch 
							 
						 
					
						
							
								
									
										
										
										
											2016-10-23 00:05:01 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									case  ObjectTooLarge : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										apiErr  =  ErrEntityTooLarge 
							 
						 
					
						
							
								
									
										
										
										
											2016-11-21 20:15:26 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									case  ObjectTooSmall : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										apiErr  =  ErrEntityTooSmall 
							 
						 
					
						
							
								
									
										
										
										
											2017-03-17 03:21:58 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									case  NotImplemented : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										apiErr  =  ErrNotImplemented 
							 
						 
					
						
							
								
									
										
										
										
											2016-05-06 11:24:29 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									default : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										apiErr  =  ErrInternalError 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2016-11-22 05:51:05 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-05-06 11:24:29 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									return  apiErr 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 18:24:52 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								// getAPIError provides API Error for input API error code.
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								func  getAPIError ( code  APIErrorCode )  APIError  {  
						 
					
						
							
								
									
										
										
										
											2015-02-11 19:23:15 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									return  errorCodeResponse [ code ] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-02-24 08:46:48 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								// getErrorResponse gets in standard error and resource value and
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// provides a encodable populated response values
  
						 
					
						
							
								
									
										
										
										
											2016-03-10 18:24:52 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								func  getAPIErrorResponse ( err  APIError ,  resource  string )  APIErrorResponse  {  
						 
					
						
							
								
									
										
										
										
											2017-01-19 04:24:34 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									return  APIErrorResponse { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Code :       err . Code , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Message :    err . Description , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Resource :   resource , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										RequestID :  "3L137" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										HostID :     "3L137" , 
							 
						 
					
						
							
								
									
										
										
										
											2015-02-12 14:00:45 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2015-02-11 19:23:15 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								}