PutBucketWebsite

Prev Next

Classic/VPC 환경에서 이용 가능합니다.

Ncloud Storage 버킷에 정적 웹 사이트 호스팅 설정을 등록하거나 기존 설정을 덮어씁니다.

참고

설정을 등록한 버킷에 접근하는 방법은 웹 사이트 호스팅 엔드포인트를 참조해 주십시오.

요청

요청 형식을 설명합니다. 요청 형식은 다음과 같습니다.

메서드 URI
PUT -

요청 헤더

요청 헤더에 대한 설명은 다음과 같습니다.

참고

Ncloud Storage API에서 공통으로 사용하는 헤더에 대한 정보는 Ncloud Storage 요청 헤더를 참조해 주십시오.

필드 필수 여부 설명
Content-MD5 Optional 요청 바디의 Base64 인코딩된 128비트 MD5 해시값
  • 요청 바디 무결성 검증에 사용
x-amz-checksum-* Optional 체크섬 해시 값
  • 키의 *에 사용한 알고리즘 입력
    • 지원 알고리즘: crc32 | crc32c | sha1 | sha256 | crc64nvme

요청 쿼리 파라미터

요청 쿼리 파라미터에 대한 설명은 다음과 같습니다.

필드 타입 필수 여부 설명
website String Required 정적 웹 사이트 호스팅 설정 변경 요청
  • 값 없이 키만 입력

요청 바디

요청 바디에 대한 설명은 다음과 같습니다.

필드 타입 필수 여부 설명
WebsiteConfiguration - Required 정적 웹 사이트 호스팅 설정의 루트 요소
  • 최대 크기: 128KB
WebsiteConfiguration.IndexDocument Object Conditional 인덱스 문서 설정
  • RedirectAllRequestsTo를 입력하지 않은 경우, 필수 입력
WebsiteConfiguration.IndexDocument.Suffix String Required 인덱스 문서의 객체 이름
  • <예시> index.html
  • 빈 문자열 및 / 포함 불가
WebsiteConfiguration.ErrorDocument Object Optional 오류 문서 설정
  • RedirectAllRequestsTo와 동시 입력 불가
WebsiteConfiguration.ErrorDocument.Key String Required 오류 문서의 객체 키
  • <예시> error.html
  • 빈 문자열 불가
WebsiteConfiguration.RedirectAllRequestsTo Object Conditional 모든 요청을 지정한 호스트로 리다이렉트하는 설정
  • IndexDocument를 입력하지 않은 경우, 필수 입력
  • IndexDocument, ErrorDocument, RoutingRules와 동시 입력 불가
WebsiteConfiguration.RedirectAllRequestsTo.HostName String Required 리다이렉트할 호스트 이름
  • <예시> www.example.com
  • 빈 문자열 불가
WebsiteConfiguration.RedirectAllRequestsTo.Protocol String Optional 리다이렉트할 프로토콜
  • http | https
  • 미입력 시 요청 프로토콜을 따름
WebsiteConfiguration.RoutingRules List Optional 리다이렉트 규칙 목록
  • 최대 50개 가능
  • RoutingRule을 1개 이상 포함
WebsiteConfiguration.RoutingRules.RoutingRule.Condition Object Optional 규칙을 적용할 조건
  • 미입력 시 모든 요청에 규칙 적용
  • 입력 시 하위 요소 중 하나 이상 입력
WebsiteConfiguration.RoutingRules.RoutingRule.Condition.KeyPrefixEquals String Optional 규칙을 적용할 객체 키의 접두사
  • 최대 1,024자 가능
WebsiteConfiguration.RoutingRules.RoutingRule.Condition.HttpErrorCodeReturnedEquals Integer Optional 규칙을 적용할 응답 상태 코드
  • 400~417 | 500~505
WebsiteConfiguration.RoutingRules.RoutingRule.Redirect Object Required 리다이렉트 대상
WebsiteConfiguration.RoutingRules.RoutingRule.Redirect.HostName String Optional 리다이렉트할 호스트 이름
  • / 및 공백 포함 불가
  • 미입력 시 요청 호스트를 따름
WebsiteConfiguration.RoutingRules.RoutingRule.Redirect.Protocol String Optional 리다이렉트할 프로토콜
  • http | https
  • 미입력 시 요청 프로토콜을 따름
WebsiteConfiguration.RoutingRules.RoutingRule.Redirect.HttpRedirectCode Integer Optional 리다이렉트 응답 상태 코드
  • 301~308 (306 제외)
  • 미입력 시 301
WebsiteConfiguration.RoutingRules.RoutingRule.Redirect.ReplaceKeyWith String Optional 객체 키 전체를 대체할 값
  • 최대 1,024자 가능
  • ReplaceKeyPrefixWith와 동시 입력 불가
WebsiteConfiguration.RoutingRules.RoutingRule.Redirect.ReplaceKeyPrefixWith String Optional Condition.KeyPrefixEquals에 해당하는 접두사를 대체할 값
  • 최대 1,024자 가능
  • ReplaceKeyWith와 동시 입력 불가
참고

요청 바디 관련하여 다음 내용을 참고해 주십시오.

  • IndexDocument와 RedirectAllRequestsTo를 모두 입력하지 않거나 모두 입력한 경우, 오류를 반환합니다.
  • 하나의 요청에서 여러 항목이 동시에 유효하지 않은 경우, 먼저 검사한 항목의 오류 하나만 반환합니다.

요청 예시

요청 예시는 다음과 같습니다.

인덱스 문서와 오류 문서를 설정하는 경우

docs/ 접두사를 가지는 요청을 documents/로 리다이렉트하고, 404 오류가 발생하면 지정한 호스트로 리다이렉트하는 요청 예시는 다음과 같습니다.

PUT /?website HTTP/1.1
Host: bucket.kr.ncloudstorage.com

<WebsiteConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <IndexDocument>
        <Suffix>index.html</Suffix>
    </IndexDocument>
    <ErrorDocument>
        <Key>error.html</Key>
    </ErrorDocument>
    <RoutingRules>
        <RoutingRule>
            <Condition>
                <KeyPrefixEquals>docs/</KeyPrefixEquals>
            </Condition>
            <Redirect>
                <ReplaceKeyPrefixWith>documents/</ReplaceKeyPrefixWith>
            </Redirect>
        </RoutingRule>
        <RoutingRule>
            <Condition>
                <HttpErrorCodeReturnedEquals>404</HttpErrorCodeReturnedEquals>
            </Condition>
            <Redirect>
                <HostName>www.example.com</HostName>
                <Protocol>https</Protocol>
                <ReplaceKeyWith>notfound.html</ReplaceKeyWith>
            </Redirect>
        </RoutingRule>
    </RoutingRules>
</WebsiteConfiguration>

모든 요청을 리다이렉트하는 경우

모든 요청을 지정한 호스트로 리다이렉트하는 요청 예시는 다음과 같습니다. RedirectAllRequestsTo는 다른 항목과 함께 입력할 수 없습니다.

PUT /?website HTTP/1.1
Host: bucket.kr.ncloudstorage.com

<WebsiteConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <RedirectAllRequestsTo>
        <HostName>www.example.com</HostName>
        <Protocol>https</Protocol>
    </RedirectAllRequestsTo>
</WebsiteConfiguration>

응답

응답 형식을 설명합니다.

응답 헤더

Ncloud Storage API에서 공통으로 사용하는 헤더에 대한 정보는 Ncloud Storage 응답 헤더를 참조해 주십시오.

응답 상태 코드

응답 상태 코드에 대한 설명은 다음과 같습니다.

참고

Ncloud Storage API에서 공통으로 사용하는 응답 상태 코드에 대한 정보는 Ncloud Storage 응답 상태 코드를 참조해 주십시오.

에러 코드 HTTP 상태 코드 설명
MissingRequestBodyError 400 요청 바디가 없음
MaxMessageLengthExceeded 400 요청 바디가 128KB를 초과함
MalformedXML 400 요청 바디 XML이 스키마에 맞지 않음
  • XML 구문 오류
  • IndexDocument에 Suffix, ErrorDocument에 Key, RedirectAllRequestsTo에 HostName, RoutingRule에 Redirect가 없음
  • RoutingRules가 비어 있음
InvalidArgument 400 요소 조합 또는 값이 유효하지 않음
  • IndexDocument와 RedirectAllRequestsTo가 모두 없음
  • RedirectAllRequestsTo를 다른 요소와 함께 입력
  • IndexDocument.Suffix가 빈 값이거나 /를 포함, ErrorDocument.Key가 빈 값
InvalidRequest 400 리다이렉트 설정 값이 유효하지 않음
  • Protocol이 http·https가 아님
  • HostName이 빈 값이거나 / 또는 공백을 포함
  • Condition이 비어 있음, HttpErrorCodeReturnedEquals가 400~417·500~505 밖, HttpRedirectCode가 301~308(306 제외) 밖
  • ReplaceKeyWith와 ReplaceKeyPrefixWith를 함께 입력, KeyPrefixEquals·ReplaceKeyWith·ReplaceKeyPrefixWith가 1,024자 초과
  • RoutingRule이 50개 초과

응답 예시

응답 예시는 다음과 같습니다.

HTTP/1.1 200 OK