

# PutObjectInline(SOAP API)
<a name="SOAPPutObjectInline"></a>

**참고**  
 Amazon S3용 SOAP API는 신규 고객에게 제공되지 않으며 2025년 8월 31일에 서비스 종료(EOL)됩니다. REST API 또는 AWS SDK를 사용하는 것이 좋습니다.

`PutObjectInline` 작업은 버킷에 객체를 추가합니다. 객체에 대한 데이터는 SOAP 메시지의 본문에 제공됩니다.

버킷에 객체가 이미 있는 경우 새 객체가 기존 객체를 덮어씁니다. Amazon S3는 마지막 쓰기 요청을 저장하기 때문입니다. 하지만 Amazon S3는 분산 시스템입니다. Amazon S3가 거의 동시에 동일한 객체에 대해 여러 개의 쓰기 요청을 수신하면 최종적으로 한 요청만 성공하더라도 모든 객체가 저장될 수 있습니다. Amazon S3는 객체 잠금을 제공하지 않습니다. 이 기능이 필요한 경우 애플리케이션 계층에 구축해야 합니다.

객체가 네트워크를 통해 손상되지 않도록 하려면 객체의 MD5를 계산하여 Amazon S3에 PUT하고 반환된 Etag를 계산된 MD5 값과 비교할 수 있습니다.

PutObjectInline은 대형 객체에 사용하기에 적합하지 않습니다. 시스템은 이 작업을 1MB 이하의 객체에 사용하도록 제한합니다. 데이터 파라미터가 1MB보다 큰 객체를 인코딩하는 경우 PutObjectInline은 `InlineDataTooLargeError` 상태 코드와 함께 실패합니다. 대형 객체를 업로드하려면 대신 비 인라인 PutObject API 또는 REST API를 사용하는 것이 좋습니다.

**Example**  
이 예제에서는 일부 텍스트 및 메타데이터를 'quotes' 버킷의 'Nelson' 객체에 쓰고, 사용자(일반적으로 소유자)에게 객체에 대한 `FULL_CONTROL` 액세스 권한을 부여하고, 익명 사용자가 객체를 읽을 수 있도록 설정합니다.  
`Sample Request`  

```
 1. <PutObjectInline xmlns="https://doc.s3.amazonaws.com/2006-03-01">
 2.   <Bucket>quotes</Bucket>
 3.   <Key>Nelson</Key>
 4.   <Metadata>
 5.     <Name>Content-Type</Name>
 6.     <Value>text/plain</Value>
 7.   </Metadata>
 8.   <Metadata>
 9.     <Name>family</Name>
10.     <Value>Muntz</Value>
11.   </Metadata>
12.   <Data>aGEtaGE=</Data>
13.   <ContentLength>5</ContentLength>
14.   <AccessControlList>
15.     <Grant>
16.       <Grantee xsi:type="CanonicalUser">
17.         <ID>a9a7b886d6fde241bf9b1c61be666e9</ID>
18.         <DisplayName>chriscustomer</DisplayName>
19.       </Grantee>
20.       <Permission>FULL_CONTROL</Permission>
21.     </Grant>
22.     <Grant>
23.       <Grantee xsi:type="Group">
24.         <URI>http://acs.amazonaws.com/groups/global/AllUsers</URI>
25.       </Grantee>
26.       <Permission>READ</Permission>
27.     </Grant>
28.   </AccessControlList>
29.   <AWSAccessKeyId>AKIAIOSFODNN7EXAMPLE</AWSAccessKeyId>
30.   <Timestamp>2006-03-01T12:00:00.183Z</Timestamp>
31.   <Signature>Iuyz3d3P0aTou39dzbqaEXAMPLE=</Signature>
32. </PutObjectInline>
```
`Sample Response`  

```
1. <PutObjectInlineResponse xmlns="https://s3.amazonaws.com/doc/2006-03-01">
2.   <PutObjectInlineResponse>
3.     <ETag>&quot828ef3fdfa96f00ad9f27c383fc9ac7f&quot</ETag>
4.     <LastModified>2006-01-01T12:00:00.000Z</lastModified>
5.   </PutObjectInlineResponse>
6. </PutObjectInlineResponse>
```

## 요소
<a name="SOAPPutObjectInlineElements"></a>
+ `Bucket:` 객체를 추가할 버킷입니다.

  
+ `Key:` 객체에 할당할 키입니다.

  
+ `Metadata:` 메타데이터 요소에서 이름-값 메타데이터 쌍을 제공할 수 있습니다. 이는 객체와 함께 저장됩니다.

  
+ `Data:` 데이터의 Base64로 인코딩된 형식입니다.

  
+ `ContentLength:` 데이터의 바이트 단위 길이입니다.

  
+ `AccessControlList:` 리소스에 대한 액세스 제어 목록입니다. 이 요소는 선택 사항입니다. 이 요소를 생략하면 요청자에게 객체에 대한 `FULL_CONTROL` 액세스 권한이 부여됩니다. 객체가 이미 있는 경우 기존 액세스 제어 정책이 대체됩니다.

  

## 응답
<a name="SOAPPutObjectInlineResponse"></a>
+  `ETag:` 엔터티 태그는 `GetObjectExtended`를 사용하여 객체의 조건부 가져오기를 수행하는 데 사용할 수 있는 객체의 MD5 해시입니다. ETag는 객체의 콘텐츠에 대한 변경 사항만 반영하고 메타데이터에 대한 변경을 반영하지 않습니다.
+ `LastModified:` 저장된 객체의 Amazon S3 타임스탬프입니다.

## 액세스 통제
<a name="SOAPPutObjectInlineAccessControl"></a>

객체를 버킷에 넣으려면 버킷에 대한 `WRITE` 액세스 권한이 있어야 합니다.

## 관련 리소스
<a name="SOAPPutObjectInline_RelatedResources"></a>
+  [PutObject(SOAP API)](SOAPPutObject.md) 
+  [CopyObject(SOAP API)](SOAPCopyObject.md) 