1package gofakes3 2 3import ( 4 "net/http" 5 "strings" 6) 7 8var ( 9 corsHeaders = []string{ 10 "Accept", 11 "Accept-Encoding", 12 "Authorization", 13 "Content-Disposition", 14 "Content-Length", 15 "Content-Type", 16 "X-Amz-Date", 17 "X-Amz-User-Agent", 18 "X-CSRF-Token", 19 "x-amz-acl", 20 "x-amz-content-sha256", 21 "x-amz-meta-filename", 22 "x-amz-meta-from", 23 "x-amz-meta-private", 24 "x-amz-meta-to", 25 "x-amz-security-token", 26 } 27 corsHeadersString = strings.Join(corsHeaders, ", ") 28) 29 30type withCORS struct { 31 r http.Handler 32 log Logger 33} 34 35func (s *withCORS) ServeHTTP(w http.ResponseWriter, r *http.Request) { 36 w.Header().Set("Access-Control-Allow-Origin", "*") 37 w.Header().Set("Access-Control-Allow-Methods", "POST, GET, OPTIONS, PUT, DELETE, HEAD") 38 w.Header().Set("Access-Control-Allow-Headers", corsHeadersString) 39 w.Header().Set("Access-Control-Expose-Headers", "ETag") 40 41 if r.Method == "OPTIONS" { 42 return 43 } 44 45 s.r.ServeHTTP(w, r) 46} 47