> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# PUT (/sessions/{sessionId}/scids/{scid}/data/{pathAndFileName},{type})

> PUT (/sessions/{sessionId}/scids/{scid}/data/{pathAndFileName},{type})

# PUT (/sessions/{sessionId}/scids/{scid}/data/{pathAndFileName},{type})

파일을 업로드합니다. 데이터와 메타데이터를 단일 메시지로 보내는 전체 업로드로 데이터를 업로드하거나, 데이터와 메타데이터를 일련의 작은 블록으로 보내는 다중 블록 업로드로 업로드할 수 있습니다. 단일 메시지로는 4메가바이트 미만의 파일만 보낼 수 있습니다. json 형식 데이터에 대한 다중 블록 업로드는 지원되지 않습니다.
이 URI의 도메인은 `titlestorage.xboxlive.com`입니다.

* [URI 매개 변수](#ID4EX)
* [권한 부여](#ID4EEB)
* [선택적 쿼리 문자열 매개 변수](#ID4ERB)
* [필수 요청 헤더](#ID4ENE)
* [선택적 요청 헤더](#ID4EWF)
* [요청 본문](#ID4EZG)
* [HTTP 상태 코드](#ID4EEH)
* [응답 본문](#ID4EXEAC)

## URI 매개 변수

| 매개 변수 | 유형 | 설명 |
| - | - | - |
| sessionId | string | 조회할 세션의 ID입니다. |
| scid | guid | 조회할 서비스 구성의 ID입니다. |
| pathAndFileName | string | 액세스할 항목의 경로 및 파일 이름입니다. 경로 부분(마지막 슬래시 포함까지)의 유효한 문자에는 대문자(A-Z), 소문자(a-z), 숫자(0-9), 밑줄(*), 슬래시(/)가 포함됩니다. 경로 부분은 비어 있을 수 있습니다. 파일 이름 부분(마지막 슬래시 이후의 모든 것)의 유효한 문자에는 대문자(A-Z), 소문자(a-z), 숫자(0-9), 밑줄(*), 마침표(.), 하이픈(-)이 포함됩니다. 파일 이름은 비어 있거나 마침표로 끝나거나 두 개의 연속된 마침표를 포함할 수 없습니다. |
| type | string | 데이터의 형식입니다. 가능한 값은 binary 또는 json입니다. |

## 권한 부여

요청에는 유효한 XBOX LIVE 권한 부여 헤더가 포함되어야 합니다. 호출자가 이 리소스에 액세스할 수 없는 경우 서비스는 403 Forbidden 응답을 반환합니다. 헤더가 유효하지 않거나 누락된 경우 서비스는 401 Unauthorized 응답을 반환합니다.

## 선택적 쿼리 문자열 매개 변수

단일 메시지 업로드의 경우 쿼리 문자열 매개 변수는 다음과 같습니다.

\| 매개 변수| 유형| 설명|
\| --- | --- | --- | --- | --- | --- |
\| clientFileTime| DateTime| 파일을 마지막으로 업로드한 클라이언트에서의 파일 날짜/시간입니다.|
\| displayName| string| 사용자에게 표시할 파일 이름입니다.|

다중 블록 업로드의 경우 쿼리 문자열 매개 변수는 다음과 같습니다.

\| 매개 변수| 유형| 설명|
\| --- | --- | --- | --- | --- | --- | --- | --- | --- |
\| clientFileTime| DateTime| 파일을 마지막으로 업로드한 클라이언트에서의 파일 날짜/시간입니다.|
\| displayName| string| 사용자에게 표시할 파일 이름입니다.|
\| continuationToken| string| 이전 업로드 요청의 응답에서 받은 연속 토큰입니다. 첫 번째 블록인 경우에는 지정하지 마세요. |
\| finalBlock| bool| 파일의 마지막 블록인 경우 true로 설정합니다. 다른 모든 블록의 경우 false로 설정합니다.|

## 필수 요청 헤더

\| 헤더| 값| 설명|
\| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
\| x-xbl-contract-version| 1| API 계약 버전입니다.|
\| Authorization| XBL3.0 x=\[hash];\[token]| STS 인증 토큰입니다. STSTokenString은 인증 요청에서 반환된 토큰으로 대체됩니다. STS 토큰 검색 및 권한 부여 헤더 생성에 대한 자세한 내용은 Authenticating and Authorizing XBOX LIVE Services Requests를 참조하세요.|

## 선택적 요청 헤더

\| 헤더| 설명|
\| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
\| If-Match| 작업을 완료하기 위해 기존 항목과 일치해야 하는 ETag를 지정합니다.|
\| If-None-Match| 작업을 완료하기 위해 기존 항목과 일치하지 않아야 하는 ETag를 지정합니다.|

## 요청 본문

요청 본문에는 업로드되는 파일의 내용이 포함됩니다. 단일 메시지 업로드의 경우 본문은 파일의 전체 내용입니다. 다중 블록 업로드의 경우 본문은 쿼리 문자열 매개 변수에 지정된 파일의 일부분입니다.

## HTTP 상태 코드

서비스는 이 리소스에 대해 이 메서드로 만든 요청에 대한 응답으로 이 섹션의 상태 코드 중 하나를 반환합니다. XBOX Live Services에서 사용하는 표준 HTTP 상태 코드의 전체 목록은 [표준 HTTP 상태 코드](https://devdocs.xbox.com/ko/reference/live/rest/additional/httpstatuscodes)를 참조하세요.

\| 코드| 이유 문구| 설명|
\| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
\| 200| OK | 요청이 성공했습니다.|
\| 201| Created | 엔터티가 생성되었습니다.|
\| 400| Bad Request | 서비스가 잘못된 형식의 요청을 이해할 수 없습니다. 일반적으로 잘못된 매개 변수입니다.|
\| 401| Unauthorized | 요청에 사용자 인증이 필요합니다.|
\| 403| Forbidden | 사용자 또는 서비스에 대해 요청이 허용되지 않습니다.|
\| 404| Not Found | 지정된 리소스를 찾을 수 없습니다.|
\| 406| Not Acceptable | 리소스 버전이 지원되지 않습니다.|
\| 408| Request Timeout | 요청을 완료하는 데 시간이 너무 오래 걸렸습니다.|
\| 500| Internal Server Error | 서버가 요청을 이행하지 못하게 하는 예기치 않은 상태를 발견했습니다.|
\| 503| Service Unavailable | 요청이 제한되었습니다. client-retry 값(예: 5초)을 초 단위로 지정한 후 요청을 다시 시도하세요.|

## 응답 본문

호출이 다중 블록 요청이고 성공한 경우, 서비스는 다음 블록과 함께 전달할 연속 토큰을 반환합니다.

### 샘플 응답

```cpp theme={null}
{
    "continuationToken":"abcd1234-1111-2222-3333-abcd12345678-1"
}
         
```

## 참고 항목

##### 부모

[/sessions/{sessionId}/scids/{scid}/data/{pathAndFileName},{type}](https://devdocs.xbox.com/ko/reference/live/rest/uri/storage/uri-sessionssessionidscidssciddatapathandfilenametype)


## Related topics

- [XblMultiplayerSessionReferenceUri](https://devdocs.xbox.com/reference/live/xsapi-c/multiplayer_c/structs/xblmultiplayersessionreferenceuri.md)
- [XblTitleStorageBlobMetadata](https://devdocs.xbox.com/reference/live/xsapi-c/title_storage_c/structs/xbltitlestorageblobmetadata.md)
- [XblMultiplayerSessionReference](https://devdocs.xbox.com/reference/live/xsapi-c/multiplayer_c/structs/xblmultiplayersessionreference.md)
- [XblTitleStorageUploadBlobAsync](https://devdocs.xbox.com/es/reference/live/xsapi-c/title_storage_c/functions/xbltitlestorageuploadblobasync.md)
