View a markdown version of this page

PutObjectInline(SOAP API) - Amazon Simple Storage Service

PutObjectInline(SOAP API)

참고

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를 사용하는 것이 좋습니다.

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

Sample Request

<PutObjectInline xmlns="https://doc.s3.amazonaws.com/2006-03-01"> <Bucket>quotes</Bucket> <Key>Nelson</Key> <Metadata> <Name>Content-Type</Name> <Value>text/plain</Value> </Metadata> <Metadata> <Name>family</Name> <Value>Muntz</Value> </Metadata> <Data>aGEtaGE=</Data> <ContentLength>5</ContentLength> <AccessControlList> <Grant> <Grantee xsi:type="CanonicalUser"> <ID>a9a7b886d6fde241bf9b1c61be666e9</ID> <DisplayName>chriscustomer</DisplayName> </Grantee> <Permission>FULL_CONTROL</Permission> </Grant> <Grant> <Grantee xsi:type="Group"> <URI>http://acs.amazonaws.com/groups/global/AllUsers</URI> </Grantee> <Permission>READ</Permission> </Grant> </AccessControlList> <AWSAccessKeyId>AKIAIOSFODNN7EXAMPLE</AWSAccessKeyId> <Timestamp>2006-03-01T12:00:00.183Z</Timestamp> <Signature>Iuyz3d3P0aTou39dzbqaEXAMPLE=</Signature> </PutObjectInline>

Sample Response

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

요소

  • Bucket: 객체를 추가할 버킷입니다.

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

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

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

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

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

응답

  • ETag: 엔터티 태그는 GetObjectExtended를 사용하여 객체의 조건부 가져오기를 수행하는 데 사용할 수 있는 객체의 MD5 해시입니다. ETag는 객체의 콘텐츠에 대한 변경 사항만 반영하고 메타데이터에 대한 변경을 반영하지 않습니다.

  • LastModified: 저장된 객체의 Amazon S3 타임스탬프입니다.

액세스 통제

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

관련 리소스