

# Usar comandos em nível de API (s3api) na AWS CLI
<a name="cli-services-s3-apicommands"></a>

Os comandos no nível de API (contidos no conjunto de comandos `s3api`) fornecem acesso direto às APIs do Amazon Simple Storage Service (Amazon S3) e ativam algumas operações que não são expostas em comandos de alto nível do `s3`. Esses comandos são equivalentes aos outros serviços da AWS que fornecem acesso em nível de API para a funcionalidade de serviços. Para obter mais informações sobre os comando do `s3`, consulte [Como usar comandos de alto nível (s3) na AWS CLI](cli-services-s3-commands.md)

Este tópico fornece exemplos que demonstram como usar os comandos de nível inferior que são mapeados em APIs do Amazon S3. Além disso, você pode encontrar exemplos para cada comando de API do S3 na seção `s3api` do [Guia de referência da AWS CLI versão 2](https://docs.aws.amazon.com/cli/latest/reference/s3api/index.html).

**Topics**
+ [Pré-requisitos](#cli-services-s3-apicommands-prereqs)
+ [Aplicar uma ACL personalizada](#cli-services-s3-apicommands-acls)
+ [Configurar uma política de registro em log](#cli-services-s3-apicommands-logpol)
+ [Recursos](#cli-services-s3-apicommands-resources)

## Pré-requisitos
<a name="cli-services-s3-apicommands-prereqs"></a>

Para executar os comandos `s3api`, você precisa:
+ Instale e configure a . AWS CLI. Para ter mais informações, consulte [Instalar ou atualizar a versão mais recente da AWS CLI](getting-started-install.md) e [Autenticação e credenciais de acesso para a AWS CLI](cli-chap-authentication.md).
+ O perfil utilizado deve ter permissões que garantem as operações da AWS realizadas pelos exemplos.
+ Entenda estes termos do Amazon S3:
  + **Bucket**: uma pasta de nível superior do Amazon S3.
  + **Prefixo**: uma pasta do Amazon S3 em um bucket.
  + **Objeto**: qualquer item hospedado em um bucket do Amazon S3.

## Aplicar uma ACL personalizada
<a name="cli-services-s3-apicommands-acls"></a>

Com comandos de alto nível, é possível usar a opção `--acl` para aplicar listas de controle de acesso (ACLs) predefinidas a objetos do Amazon S3. No entanto, não é possível usar esse comando para definir ACLs em todo o bucket. No entanto, você pode fazer isso usando o comando em nível de API ```[put-bucket-acl](https://docs.aws.amazon.com/cli/latest/reference/s3api/put-bucket-acl.html)`. 

O exemplo a seguir mostra como conceder o controle total a dois usuários do AWS (*user1@example.com* e *user2@example.com*) e a permissão de leitura a todos. O identificador para “todos” vem de um URI especial que você transmite como um parâmetro.

```
$ aws s3api put-bucket-acl --bucket {{amzn-s3-demo-bucket}} --grant-full-control 'emailaddress="{{user1@example.com}}",emailaddress="{{user2@example.com}}"' --grant-read 'uri="http://acs.amazonaws.com/groups/global/AllUsers"'
```

Para obter detalhes sobre como construir as ACLs, consulte [PUT Bucket acl](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTacl.html) na *Referência da API do Amazon Simple Storage Service*. Os comandos de ACL `s3api` na CLI, como `put-bucket-acl`, usam a mesma [notação de argumento abreviada](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-shorthand.html).

## Configurar uma política de registro em log
<a name="cli-services-s3-apicommands-logpol"></a>

O comando da API `put-bucket-logging` configura uma política de registro de buckets. 

No exemplo a seguir, ao usuário da AWS *usuario@exemple.com* recebe controle total sobre os arquivos de log, e todos os usuários terão acesso de leitura a eles. Observe que o comando `put-bucket-acl` também deve conceder ao sistema de entrega de log do Amazon S3 (especificado por um URI) as permissões necessárias para ler e gravar os logs no bucket.

```
$ aws s3api put-bucket-acl --bucket {{amzn-s3-demo-bucket}} --grant-read-acp 'URI="http://acs.amazonaws.com/groups/s3/LogDelivery"' --grant-write 'URI="http://acs.amazonaws.com/groups/s3/LogDelivery"'
$ aws s3api put-bucket-logging --bucket {{amzn-s3-demo-bucket}} --bucket-logging-status file://logging.json
```

O arquivo `logging.json` no comando anterior tem o seguinte conteúdo.

```
{
  "LoggingEnabled": {
    "TargetBucket": "amzn-s3-demo-bucket",
    "TargetPrefix": "amzn-s3-demo-bucketLogs/",
    "TargetGrants": [
      {
        "Grantee": {
          "Type": "AmazonCustomerByEmail",
          "EmailAddress": "{{user@example.com}}"
        },
        "Permission": "FULL_CONTROL"
      },
      {
        "Grantee": {
          "Type": "Group",
          "URI": "http://acs.amazonaws.com/groups/global/AllUsers"
        },
        "Permission": "READ"
      }
    ]
  }
}
```

## Recursos
<a name="cli-services-s3-apicommands-resources"></a>

**AWS CLI Referência da:**
+ [https://docs.aws.amazon.com/cli/latest/reference/s3api/index.html](https://docs.aws.amazon.com/cli/latest/reference/s3api/index.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/s3api/put-bucket-acl.html](https://docs.aws.amazon.com/cli/latest/reference/s3api/put-bucket-acl.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/s3api/put-bucket-logging.html](https://docs.aws.amazon.com/cli/latest/reference/s3api/put-bucket-logging.html)

**Referência do serviço:**
+ [Como trabalhar com buckets do Amazon S3](https://docs.aws.amazon.com//AmazonS3/latest/userguide/UsingBucket.html) no *Guia do desenvolvedor do Amazon S3*
+ [Como trabalhar com objetos do Amazon S3](https://docs.aws.amazon.com//AmazonS3/latest/userguide/UsingObjects.html) no *Guia do usuário do Amazon S3*
+ [Para listar chaves hierarquicamente usando um prefixo e delimitador](https://docs.aws.amazon.com//AmazonS3/latest/userguide/ListingKeysHierarchy.html) no *Guia do usuário do Amazon S3*
+ [Anular carregamentos fracionados para um bucket do S3 usando o AWS SDK para .NET (nível baixo)](https://docs.aws.amazon.com//AmazonS3/latest/userguide/LLAbortMPUnet.html) no *Guia do usuário do Amazon S3*