S3 의 CORS 설정이 기존 XML 방식에서 Json 방식으로 변경이 되었다 ‘ㅅ’a
웹콘솔에서 s3 버킷을 선택 하고 관리 탭의 하단에 있다.
사실 문법만 틀리겠지만 미리 정리를 해본다.
다음은 가장 일반적인 형태의 자신의 도메인 주소를 추가 하는 방법이다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
[ { "AllowedOrigins": [ "https://enteroa.com" ], "AllowedMethods": [ "GET", "PUT", "POST", "HEAD" ], "AllowedHeaders": [ "*" ], "ExposeHeaders": [ "x-amz-server-side-encryption", "x-amz-request-id", "x-amz-id-2" ], "MaxAgeSeconds": 3000 }, { "AllowedOrigins": [ "https://*.enteroa.com" ], "AllowedMethods": [ "GET", "PUT", "POST", "HEAD" ], "AllowedHeaders": [ "*" ], "ExposeHeaders": [ "x-amz-server-side-encryption", "x-amz-request-id", "x-amz-id-2" ], "MaxAgeSeconds": 3000 }, { "AllowedOrigins": [ "http://enteroa.com" ], "AllowedMethods": [ "GET", "PUT", "POST", "HEAD" ], "AllowedHeaders": [ "*" ], "ExposeHeaders": [ "x-amz-server-side-encryption", "x-amz-request-id", "x-amz-id-2" ], "MaxAgeSeconds": 3000 }, { "AllowedOrigins": [ "http://*.enteroa.com" ], "AllowedMethods": [ "GET", "PUT", "POST", "HEAD" ], "AllowedHeaders": [ "*" ], "ExposeHeaders": [ "x-amz-server-side-encryption", "x-amz-request-id", "x-amz-id-2" ], "MaxAgeSeconds": 3000 } ] |
IDE를 가지고 개발하는 경우.. 개발자 PC 에서 웹서버가 자주 실행하고 테스트 해야 된다면 아래와 같이 localhost:* 을 추가 한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
[ { "AllowedOrigins": [ "http://localhost:*" ], "AllowedMethods": [ "GET", "PUT", "POST", "HEAD" ], "AllowedHeaders": [ "*" ], "ExposeHeaders": [ "x-amz-server-side-encryption", "x-amz-request-id", "x-amz-id-2" ], "MaxAgeSeconds": 3000 }, { "AllowedOrigins": [ "http://127.0.0.1:*" ], "AllowedMethods": [ "GET", "PUT", "POST", "HEAD" ], "AllowedHeaders": [ "*" ], "ExposeHeaders": [ "x-amz-server-side-encryption", "x-amz-request-id", "x-amz-id-2" ], "MaxAgeSeconds": 3000 } ] |
모든 곳에 허용(메일 삽입 이미지 등등) 하는 것은 Origin 설정을 * 으로 하면 된다 ‘ㅅ’a
1 2 3 4 5 6 7 8 9 |
[ { "AllowedOrigins": [ "*" ], "AllowedMethods": [ "GET", "HEAD" ], "AllowedHeaders": [ "*" ], "ExposeHeaders": [ "x-amz-server-side-encryption", "x-amz-request-id", "x-amz-id-2" ], "MaxAgeSeconds": 3000 } ] |
AllowedMethods 는 GET, POST, HEAD, PUT, DELETE 를 지정 할수 있다.
PS. 터미널에서 curl 으로 CORS 검사는 아래와 같이 할 수 있다.
1 2 3 4 5 |
~]# curl -sI \ -H 'Origin: http://test.com' \ -H 'Access-Control-Request-Headers: Origin, Accept, Content-Type' \ -H 'Access-Control-Request-Method: GET' \ https://enteroa-bucket.s3-us-west-2.amazonaws.com/img/123.jpg |