

# PutObject (API SOAP)
<a name="SOAPPutObject"></a>

**nota**  
 As APIs SOAP para o Amazon S3 não estão disponíveis para novos clientes e chegam ao fim da vida útil (EOL) em 31 de agosto de 2025. Recomendamos usar a API REST ou os AWS SDKs. 

A operação `PutObject` adiciona um objeto a um bucket. Os dados do objeto são anexados como um anexo DIME.

Para garantir que um objeto não seja corrompido na rede, calcule o MD5 de um objeto, realize PUT no Amazon S3 e compare o Etag retornado com o valor calculado de MD5.

Se um objeto já existir em um bucket, o novo objeto o substituirá porque o Amazon S3 armazena a última solicitação de gravação. No entanto, o Amazon S3 é um sistema distribuído. Se o Amazon S3 receber várias solicitações de gravação para o mesmo objeto quase simultaneamente, todos os objetos poderão ser armazenados, mesmo que apenas um vença no final. O Amazon S3 não fornece bloqueio de objetos; se você precisar disso, incorpore-o à camada de aplicativo.

**Example**  
Este exemplo coloca alguns dados e metadados no objeto “Nelson” do bucket “quotes”, concede ao usuário (geralmente o proprietário) acesso `FULL_CONTROL` ao objeto e torna o objeto legível por partes anônimas. Neste exemplo, o anexo real não é mostrado.  
`Sample Request`  

```
 1. <PutObject 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.   <ContentLength>5</ContentLength>
13.   <AccessControlList>
14.     <Grant>
15.       <Grantee xsi:type="CanonicalUser">
16.         <ID>a9a7b886d6241bf9b1c61be666e9</ID>
17.         <DisplayName>chriscustomer</DisplayName>
18.       </Grantee>
19.       <Permission>FULL_CONTROL</Permission>
20.     </Grant>
21.     <Grant>
22.       <Grantee xsi:type="Group">
23.         <URI>http://acs.amazonaws.com/groups/global/AllUsers<URI>
24.       </Grantee>
25.       <Permission>READ</Permission>
26.     </Grant>
27.   </AccessControlList>
28.   <AWSAccessKeyId>AKIAIOSFODNN7EXAMPLE</AWSAccessKeyId>
29.   <Timestamp>2007-05-11T12:00:00.183Z</Timestamp>
30.   <Signature>Iuyz3d3P0aTou39dzbqaEXAMPLE=</Signature>
31. </PutObject>
```
`Sample Response`  

```
1. <PutObjectResponse xmlns="https://s3.amazonaws.com/doc/2006-03-01">
2.   <PutObjectResponse>
3.     <ETag>&quot;828ef3fdfa96f00ad9f27c383fc9ac7f&quot;</ETag>
4.     <LastModified>2006-03-01T12:00:00.183Z</LastModified>
5.   </PutObjectResponse>
6. </PutObjectResponse>
```

## Elementos
<a name="SOAPPutObjectElements"></a>
+  `Bucket:` O bucket ao qual adicionar o objeto.
+ `Key:` A chave a ser atribuída ao objeto.
+ `Metadata:` Você pode fornecer pares de metadados de nome e valor no elemento de metadados. Eles serão armazenados com o objeto.
+ `ContentLength:` O comprimento dos dados em bytes.
+ `AccessControlList:` Uma lista de controle de acesso para o recurso. O elemento é opcional. Se for omitido, o solicitante terá acesso `FULL_CONTROL` ao objeto. Se o objeto já existir, a política de controle de acesso preexistente será substituída.

## Respostas
<a name="SOAPPutObjectResponse"></a>
+ `ETag:` ETag (identificador de entidade) é um hash MD5 do objeto que você pode usar para fazer buscas condicionais do objeto usando `GetObjectExtended`. O ETag reflete apenas as alterações no conteúdo de um objeto, não nos metadados.
+ `LastModified:` O carimbo de data/hora do Amazon S3 para o objeto salvo.

## Controle de acesso
<a name="SOAPPutObjectAccessControl"></a>

Para colocar objetos em um bucket, você deve ter acesso `WRITE` ao bucket.

## Recursos relacionados
<a name="SOAPPutObject_RelatedResources"></a>
+  [CopyObject (API SOAP)](SOAPCopyObject.md) 