---
title: "PutBucketWebsite"
slug: "ncloudstorage-putbucketwebsite"
updated: 2026-09-18T05:47:44Z
published: 2026-10-14T09:00:20Z
canonical: "api.ncloud-docs.com/ncloudstorage-putbucketwebsite"
---
> ## Documentation Index
> Fetch the complete documentation index at: https://api.ncloud-docs.com/llms.txt
> Use this file to discover all available pages before exploring further.
# PutBucketWebsite
Classic/VPC 환경에서 이용 가능합니다.
Ncloud Storage 버킷에 정적 웹 사이트 호스팅 설정을 등록하거나 기존 설정을 덮어씁니다.
참고
설정을 등록한 버킷에 접근하는 방법은 [웹 사이트 호스팅 엔드포인트](/docs/storage-ncloudstorage#%EC%9B%B9%EC%82%AC%EC%9D%B4%ED%8A%B8%ED%98%B8%EC%8A%A4%ED%8C%85%EC%97%94%EB%93%9C%ED%8F%AC%EC%9D%B8%ED%8A%B8)를 참조해 주십시오.
## 요청
요청 형식을 설명합니다. 요청 형식은 다음과 같습니다.
| 메서드 | URI |
| --- | --- |
| PUT | - |
### 요청 헤더
요청 헤더에 대한 설명은 다음과 같습니다.
참고
Ncloud Storage API에서 공통으로 사용하는 헤더에 대한 정보는 [Ncloud Storage 요청 헤더](/docs/storage-ncloudstorage#%EC%9A%94%EC%B2%AD%ED%97%A4%EB%8D%94)를 참조해 주십시오.
| 필드 | 필수 여부 | 설명 |
| --- | --- | --- |
| `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
index.html
error.html
docs/
documents/
404
www.example.com
https
notfound.html
```
#### 모든 요청을 리다이렉트하는 경우
모든 요청을 지정한 호스트로 리다이렉트하는 요청 예시는 다음과 같습니다. `RedirectAllRequestsTo`는 다른 항목과 함께 입력할 수 없습니다.
```
PUT /?website HTTP/1.1
Host: bucket.kr.ncloudstorage.com
www.example.com
https
```
## 응답
응답 형식을 설명합니다.
### 응답 헤더
Ncloud Storage API에서 공통으로 사용하는 헤더에 대한 정보는 [Ncloud Storage 응답 헤더](/docs/storage-ncloudstorage#%EC%9D%91%EB%8B%B5%ED%97%A4%EB%8D%94)를 참조해 주십시오.
### 응답 상태 코드
응답 상태 코드에 대한 설명은 다음과 같습니다.
참고
Ncloud Storage API에서 공통으로 사용하는 응답 상태 코드에 대한 정보는 [Ncloud Storage 응답 상태 코드](/docs/storage-ncloudstorage#%EC%9D%91%EB%8B%B5%EC%83%81%ED%83%9C%EC%BD%94%EB%93%9C)를 참조해 주십시오.
| 에러 코드 | 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
```