You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							66 lines
						
					
					
						
							1.9 KiB
						
					
					
				
			
		
		
		
			
			
			
		
		
	
	
							66 lines
						
					
					
						
							1.9 KiB
						
					
					
				
								/*
							 | 
						|
								 * MinIO Cloud Storage, (C) 2019 MinIO, Inc.
							 | 
						|
								 *
							 | 
						|
								 * 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.
							 | 
						|
								 */
							 | 
						|
								
							 | 
						|
								package s3_constants
							 | 
						|
								
							 | 
						|
								import (
							 | 
						|
									"github.com/gorilla/mux"
							 | 
						|
									"net/http"
							 | 
						|
									"strings"
							 | 
						|
								)
							 | 
						|
								
							 | 
						|
								// Standard S3 HTTP request constants
							 | 
						|
								const (
							 | 
						|
									// S3 storage class
							 | 
						|
									AmzStorageClass = "x-amz-storage-class"
							 | 
						|
								
							 | 
						|
									// S3 user-defined metadata
							 | 
						|
									AmzUserMetaPrefix    = "X-Amz-Meta-"
							 | 
						|
									AmzUserMetaDirective = "X-Amz-Metadata-Directive"
							 | 
						|
								
							 | 
						|
									// S3 object tagging
							 | 
						|
									AmzObjectTagging          = "X-Amz-Tagging"
							 | 
						|
									AmzObjectTaggingPrefix    = "X-Amz-Tagging-"
							 | 
						|
									AmzObjectTaggingDirective = "X-Amz-Tagging-Directive"
							 | 
						|
									AmzTagCount               = "x-amz-tagging-count"
							 | 
						|
								)
							 | 
						|
								
							 | 
						|
								// Non-Standard S3 HTTP request constants
							 | 
						|
								const (
							 | 
						|
									AmzIdentityId = "s3-identity-id"
							 | 
						|
									AmzAuthType   = "s3-auth-type"
							 | 
						|
									AmzIsAdmin    = "s3-is-admin" // only set to http request header as a context
							 | 
						|
								)
							 | 
						|
								
							 | 
						|
								func GetBucketAndObject(r *http.Request) (bucket, object string) {
							 | 
						|
									vars := mux.Vars(r)
							 | 
						|
									bucket = vars["bucket"]
							 | 
						|
									object = vars["object"]
							 | 
						|
									if !strings.HasPrefix(object, "/") {
							 | 
						|
										object = "/" + object
							 | 
						|
									}
							 | 
						|
								
							 | 
						|
									return
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								var PassThroughHeaders = map[string]string{
							 | 
						|
									"response-cache-control":       "Cache-Control",
							 | 
						|
									"response-content-disposition": "Content-Disposition",
							 | 
						|
									"response-content-encoding":    "Content-Encoding",
							 | 
						|
									"response-content-language":    "Content-Language",
							 | 
						|
									"response-content-type":        "Content-Type",
							 | 
						|
									"response-expires":             "Expires",
							 | 
						|
								}
							 |