

# Usar endpoints de pilha dupla do S3 no Outposts
<a name="s3-outposts-dual-stack-endpoints"></a>

Os endpoints de pilha dupla do S3 no Outposts oferecem suporte a solicitações para buckets do S3 no Outposts por IPv6 e IPv4. Esta seção descreve como usar os endpoints de pilha dupla do S3 no Outposts.

**Topics**
+ [Endpoints de pilha dupla do S3 no Outposts](#s3-outposts-dual-stack-endpoints-description)
+ [Usar endpoints de pilha dupla da AWS CLI](#s3-outposts-dual-stack-endpoints-cli)
+ [Usar endpoints de pilha dupla do S3 no Outposts com os AWS SDKs](#s3-outposts-dual-stack-endpoints-sdks)

## Endpoints de pilha dupla do S3 no Outposts
<a name="s3-outposts-dual-stack-endpoints-description"></a>

Quando você faz uma solicitação para um endpoint de pilha dupla, o URL do bucket do S3 no Outposts é resolvido para um endereço IPv6 ou IPv4. Para obter mais informações sobre como acessar um bucket do S3 no Outposts por IPv6, consulte [Fazer solicitações ao S3 no Outposts por IPv6](S3OutpostsIPv6-access.md).

Para acessar um bucket do S3 no Outposts por meio de um endpoint de pilha dupla, use um nome de endpoint do tipo caminho. O S3 no Outposts oferece suporte apenas a nomes regionais de endpoint de pilha dupla, o que significa que você deve especificar a região como parte do nome.

Para endpoints FIPS de pilha dupla do tipo caminho, use a seguinte convenção de nomenclatura:

```
s3-outposts-fips.region.api.aws
```

Para endpoints não FIPS de pilha dupla, use a seguinte convenção de nomenclatura:

```
s3-outposts.region.api.aws
```

**nota**  
Os nomes de endpoint do tipo hospedado virtual não são compatíveis com o S3 no Outposts.

## Usar endpoints de pilha dupla da AWS CLI
<a name="s3-outposts-dual-stack-endpoints-cli"></a>

Esta seção fornece exemplos de comandos da AWS CLI usados para fazer solicitações a um endpoint de pilha dupla. Para obter instruções de configuração da AWS CLI, consulte [Como começar a usar a AWS CLI e o SDK para Java](S3OutpostsGSCLIJava.md).

Define o valor de configuração `use_dualstack_endpoint` como `true` em um perfil no arquivo do AWS Config para direcionar todas as solicitações do Amazon S3 feitas pelos comandos `s3` e `s3api` da AWS CLI ao endpoint de pilha dupla para a região especificada. Especifique a região no arquivo de configuração ou em um comando usando a opção `--region`. 

Ao usar endpoints de pilha dupla com a AWS CLI, somente o tipo de endereçamento `path` é compatível. O tipo de endereçamento, definido no arquivo de configuração, determina se o nome do bucket está no nome do host ou no URL. Consulte mais informações em [https://docs.aws.amazon.com/cli/latest/reference/s3outposts/](https://docs.aws.amazon.com/cli/latest/reference/s3outposts/) no *Guia de Usuário AWS CLI*.

Para usar um endpoint de pilha dupla por meio da AWS CLI, use o parâmetro `--endpoint-url` com o endpoint `http://s3.dualstack.region.amazonaws.com` ou `https://s3-outposts-fips.region.api.aws` em qualquer comando `s3control` ou `s3outposts`.

Por exemplo:

```
$  aws s3control list-regional-buckets --endpoint-url https://s3-outposts.region.api.aws
```

## Usar endpoints de pilha dupla do S3 no Outposts com os AWS SDKs
<a name="s3-outposts-dual-stack-endpoints-sdks"></a>

Esta seção fornece exemplos de como acessar um endpoint de pilha dupla usando os AWS SDKs. 

### AWS SDK for Java 2.xExemplo do endpoint de pilha dupla do
<a name="s3-outposts-dual-stack-endpoints-examples-javav2"></a>

Os exemplos a seguir mostram como usar as classes `S3ControlClient` e `S3OutpostsClient` para habilitar endpoints de pilha dupla ao criar um cliente do S3 no Outposts usando o AWS SDK for Java 2.x. Para obter instruções sobre como criar e testar um exemplo funcional em Java para o Amazon S3 no Outposts, consulte [Como começar a usar a AWS CLI e o SDK para Java](S3OutpostsGSCLIJava.md).

**Example : criar uma classe `S3ControlClient` com endpoints de pilha dupla habilitados**  

```
import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.s3control.S3ControlClient;
import software.amazon.awssdk.services.s3control.model.ListRegionalBucketsRequest;
import software.amazon.awssdk.services.s3control.model.ListRegionalBucketsResponse;
import software.amazon.awssdk.services.s3control.model.S3ControlException;


public class DualStackEndpointsExample1 {

    public static void main(String[] args) {
        Region clientRegion = Region.of("us-east-1");
        String accountId = "111122223333";
        String navyId = "9876543210";

        try {
            // Create an S3ControlClient with dual-stack endpoints enabled.
            S3ControlClient s3ControlClient = S3ControlClient.builder()
                                                             .region(clientRegion)
                                                             .dualstackEnabled(true)
                                                             .build();
            ListRegionalBucketsRequest listRegionalBucketsRequest = ListRegionalBucketsRequest.builder()
                                                                                              .accountId(accountId)
                                                                                              .outpostId(navyId)
                                                                                              .build();

            ListRegionalBucketsResponse listBuckets = s3ControlClient.listRegionalBuckets(listRegionalBucketsRequest);
            System.out.printf("ListRegionalBuckets Response: %s%n", listBuckets.toString());
        } catch (AmazonServiceException e) {
            // The call was transmitted successfully, but Amazon S3 on Outposts couldn't process
            // it, so it returned an error response.
            e.printStackTrace();
        }
        catch (S3ControlException e) {
            // Unknown exceptions will be thrown as an instance of this type.
            e.printStackTrace();
        } catch (SdkClientException e) {
            // Amazon S3 on Outposts couldn't be contacted for a response, or the client
            // couldn't parse the response from Amazon S3 on Outposts.
            e.printStackTrace();
        }
    }
}
```

**Example : criar um `S3OutpostsClient` com endpoints de pilha dupla habilitados**  

```
import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.s3outposts.S3OutpostsClient;
import software.amazon.awssdk.services.s3outposts.model.ListEndpointsRequest;
import software.amazon.awssdk.services.s3outposts.model.ListEndpointsResponse;
import software.amazon.awssdk.services.s3outposts.model.S3OutpostsException;


public class DualStackEndpointsExample2 {

    public static void main(String[] args) {
        Region clientRegion = Region.of("us-east-1");

        try {
            // Create an S3OutpostsClient with dual-stack endpoints enabled.
            S3OutpostsClient s3OutpostsClient = S3OutpostsClient.builder()
                                                              .region(clientRegion)
                                                              .dualstackEnabled(true)
                                                              .build();
            ListEndpointsRequest listEndpointsRequest = ListEndpointsRequest.builder().build();

            ListEndpointsResponse listEndpoints = s3OutpostsClient.listEndpoints(listEndpointsRequest);
            System.out.printf("ListEndpoints Response: %s%n", listEndpoints.toString());
        } catch (AmazonServiceException e) {
            // The call was transmitted successfully, but Amazon S3 on Outposts couldn't process
            // it, so it returned an error response.
            e.printStackTrace();
        }
        catch (S3OutpostsException e) {
            // Unknown exceptions will be thrown as an instance of this type.
            e.printStackTrace();
        } catch (SdkClientException e) {
            // Amazon S3 on Outposts couldn't be contacted for a response, or the client
            // couldn't parse the response from Amazon S3 on Outposts.
            e.printStackTrace();
        }
    }
}
```

Se você estiver usando o AWS SDK for Java 2.x no Windows, talvez precise definir a seguinte propriedade da máquina virtual Java (JVM): 

```
java.net.preferIPv6Addresses=true
```