

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Recebendo mídia RCS de entrada
<a name="rcs-inbound-media"></a>

Os usuários podem enviar mídia (imagens, vídeos, arquivos de áudio e documentos) em conversas RCS com seu agente. Quando você configura o armazenamento de mídia de entrada, o AWS End User Messaging baixa a mídia do provedor RCS, a carrega em seu bucket do Amazon S3 e publica uma notificação em seu tópico bidirecional do Amazon SNS com a localização do S3 e os metadados do arquivo.

Para obter informações gerais sobre o recebimento de mensagens RCS de entrada (respostas de texto, localização e sugestões), consulte. [Receber mensagens RCS de entrada](rcs-inbound.md) Para obter informações sobre o envio de mídia avançada aos usuários, consulte[Enviando mensagens ricas de RCS](rcs-rich-messaging.md).

## Como funciona a mídia de entrada
<a name="rcs-inbound-media-how-it-works"></a>

Quando um usuário envia um arquivo de mídia em uma conversa RCS, o AWS End User Messaging processa a mensagem por meio das seguintes etapas:

1. O usuário envia uma imagem, vídeo, arquivo de áudio ou documento do aplicativo de mensagens RCS.

1. AWSO End User Messaging baixa a mídia do provedor RCS.

1. AWSO End User Messaging carrega a mídia em seu bucket S3 configurado usando a função do IAM que você especifica.

1. AWSO End User Messaging publica uma notificação para seu tópico bidirecional do SNS. A notificação inclui o bucket do S3, a chave, o tipo MIME e os metadados da mensagem.

Para tipos de `SUGGESTION` mensagem `LOCATION` e tipo, nenhum upload do S3 ocorre. O conteúdo é entregue diretamente no corpo de notificação do SNS. Para obter detalhes sobre esses tipos de mensagem, consulte[Receber mensagens RCS de entrada](rcs-inbound.md).

## Configurando o armazenamento de mídia de entrada
<a name="rcs-inbound-media-config"></a>

Para receber mídia de entrada, configure os seguintes campos em seu agente RCS usando a `UpdateRcsAgent` API. Two-way as mensagens devem ser habilitadas no agente antes de você configurar o armazenamento de mídia.


**Campos de configuração de mídia de entrada**  

| Campo | Obrigatório | Descrição | 
| --- | --- | --- | 
| TwoWayMediaS3BucketName | Sim | O nome do bucket do S3 em que o AWS End User Messaging armazena arquivos de mídia de entrada. | 
| TwoWayMediaS3KeyPrefix | Não | Um prefixo opcional para chaves de objeto do S3. Se especificado, os objetos de mídia são armazenados sob esse prefixo no bucket. | 
| TwoWayMediaS3Role | Sim | O ARN da função do IAM que o AWS End User Messaging assume para fazer upload de arquivos de mídia para seu bucket do S3. | 

O bucket do S3 e a função do IAM são necessários juntos. Se você especificar um, deverá especificar os dois.

### Formato de chave S3
<a name="rcs-inbound-media-s3-key-format"></a>

Os objetos de mídia são armazenados com o seguinte formato de chave, em que o nome do arquivo original é anexado após um `#` separador:

```
{prefix}/rcs/{messageId}#{fileName}
```

Por exemplo, se você definir o prefixo da chave como`inbound-media`, um arquivo de mídia poderá ser armazenado como:

```
inbound-media/rcs/msg-abc123def456#photo_2026.jpg
```

## Criação da função do IAM para mídia de entrada
<a name="rcs-inbound-media-iam-role"></a>

Crie uma função do IAM que permita que o serviço AWS End User Messaging faça upload de arquivos de mídia para seu bucket do S3. A função exige uma política de confiança que permita que o serviço a assuma e uma política de permissão que conceda `s3:PutObject` acesso ao seu bucket.

### Política de confiança
<a name="rcs-inbound-media-trust-policy"></a>

A política de confiança a seguir permite que o diretor do serviço de mensagens do usuário AWS final assuma a função. `123456789012`Substitua pelo ID AWS da sua conta.

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "sms-voice.amazonaws.com"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "123456789012"
                }
            }
        }
    ]
}
```

### Política de permissão
<a name="rcs-inbound-media-permission-policy"></a>

A política de permissão a seguir concede à função acesso para gravar objetos em seu bucket do S3. Substitua `my-rcs-media-bucket` pelo nome do seu bucket.

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:PutObject"
            ],
            "Resource": "arn:aws:s3:::my-rcs-media-bucket/*"
        }
    ]
}
```

**nota**  
Defina o escopo da função do IAM de forma restrita a `s3:PutObject` apenas. O serviço não exige `s3:GetObject` nem outras permissões para entrega de mídia de entrada. `s3:DeleteObject`

## Configurando o armazenamento de mídia (CLI)
<a name="rcs-inbound-media-cli-example"></a>

O comando AWS CLI a seguir configura o armazenamento de mídia de entrada em um agente RCS existente:

```
aws pinpoint-sms-voice-v2 update-rcs-agent \
    --rcs-agent-id rcs-agent-1234567890abcdef0 \
    --two-way-media-s3-bucket-name my-rcs-media-bucket \
    --two-way-media-s3-key-prefix "inbound-media" \
    --two-way-media-s3-role arn:aws:iam::123456789012:role/RcsInboundMediaRole \
    --region us-east-1
```

## Carga útil de notificação de mídia de entrada
<a name="rcs-inbound-media-notification"></a>

Quando o AWS End User Messaging recebe um arquivo de mídia, ele publica uma notificação em seu tópico bidirecional do SNS. A notificação é um objeto JSON com um `messageBody` campo que contém um documento JSON em sequência com o status da mídia e, em caso de sucesso, a localização do S3 e os metadados do arquivo.

O exemplo a seguir mostra uma notificação de mídia de entrada bem-sucedida:

```
{
    "originationNumber": "+14255551234",
    "destinationNumber": "rcs-cb1e6e519e9049fabf8c0ae38e4d876b",
    "messageBody": "{\"mediaStatus\":\"SUCCESS\",\"s3Bucket\":\"my-rcs-media-bucket\",\"s3Key\":\"inbound-media/rcs/msg-abc123def456#photo_2026.jpg\",\"mimeType\":\"image/jpeg\",\"fileName\":\"photo_2026.jpg\",\"fileSizeBytes\":1211843}",
    "inboundMessageId": "8821d750-4bc5-4cb1-a8c3-c3d64a38d019"
}
```

A notificação de nível superior contém os seguintes campos:

`originationNumber`  
O número de telefone do usuário que enviou a mídia.

`destinationNumber`  
O identificador do agente RCS que recebeu a mensagem.

`messageBody`  
Um documento JSON em sequência de caracteres descrevendo a mídia. Ele contém os campos na tabela a seguir.

`inboundMessageId`  
O identificador exclusivo da mensagem de entrada.

O `messageBody` JSON contém os seguintes campos:

`mediaStatus`  
O resultado do processamento de mídia. Os valores válidos são `SUCCESS`, `UPLOAD_FAILED` e `ROLE_ASSUME_FAILED`.

`mediaStatusMessage`  
Uma descrição legível por humanos do status. Presente quando `mediaStatus` é um valor de falha.

`s3Bucket`  
O nome do bucket do S3 em que o arquivo de mídia está armazenado. Presente sobre o sucesso.

`s3Key`  
A chave do objeto S3 para o arquivo de mídia armazenado. Presente sobre o sucesso.

`mimeType`  
O tipo MIME do arquivo de mídia (por exemplo,, `image/jpeg``video/mp4`,`application/pdf`).

`fileName`  
O nome do arquivo original, conforme fornecido pelo dispositivo do usuário.

`fileSizeBytes`  
O tamanho do arquivo de mídia em bytes.

**nota**  
Atualmente, a notificação de mídia de entrada não inclui um campo de tipo de mensagem. Use `mediaStatus` para determinar o resultado.

## Tratamento de falhas no download de mídia
<a name="rcs-inbound-media-failure-handling"></a>

Se o AWS End User Messaging não puder baixar ou armazenar mídia do provedor de RCS, o serviço ainda publicará uma notificação para seu tópico bidirecional do SNS. O `messageBody` carrega uma falha `mediaStatus` (`UPLOAD_FAILED`ou`ROLE_ASSUME_FAILED`) e uma `mediaStatusMessage` descrição da causa, sem campos de localização do S3.

Por exemplo, uma falha na suposição de uma função do IAM produz o seguinte `messageBody` conteúdo:

```
{
    "mediaStatus": "ROLE_ASSUME_FAILED",
    "mediaStatusMessage": "Media received but could not assume the configured IAM role",
    "mimeType": "image/heic",
    "fileName": "IMG_7115.heic",
    "fileSizeBytes": 1211843
}
```

As causas comuns de falhas no download de mídia incluem:
+ A mídia não está mais disponível no provedor de RCS (por exemplo, ela expirou ou foi excluída).
+ A função do IAM não tem permissão para gravar no bucket do S3 especificado.
+ O bucket do S3 não existe ou está em uma região diferente da esperada.

Para solucionar falhas de entrega, verifique se suas políticas de confiança e permissão da função do IAM estão configuradas corretamente e se o bucket do S3 existe e pode ser acessado pelo serviço. Monitore CloudWatch as métricas do seu agente quanto a falhas no upload de mídia.

## Tipos de mídia aceitos
<a name="rcs-inbound-media-filtering"></a>

AWSO End User Messaging aceita os seguintes tipos de MIME de mídia de entrada:
+ **Imagens:**`image/jpeg`,`image/jpg`,`image/gif`, `image/png`
+ **Áudio:** `audio/aac``audio/mp3`,`audio/mpeg`,,`audio/mpg`,`audio/mp4`,`audio/mp4-latm`,`audio/3gpp`,`audio/ogg`, `application/ogg`
+ **Vídeo:**`video/h263`,`video/m4v`,`video/mp4`,`video/mpeg`,`video/mpeg4`, `video/webm`
+ **Documentos:** `application/pdf`

**nota**  
AWSO End User Messaging não impõe um limite de tamanho na mídia de entrada.

## Práticas recomendadas
<a name="rcs-inbound-media-best-practices"></a>
+ Sempre configure o armazenamento de mídia se você espera que os usuários enviem imagens, vídeos ou arquivos em conversas RCS.
+ Use um bucket S3 dedicado para mídia de entrada RCS para isolar controles de acesso e políticas de ciclo de vida.
+ Defina uma política de ciclo de vida do S3 para expirar objetos de mídia antigos (por exemplo, após 90 dias) para gerenciar os custos de armazenamento.
+ Processe mídia de entrada de forma assíncrona usando uma função AWS Lambda acionada pelo seu tópico do SNS.
+ Defina o escopo da função do IAM `s3:PutObject` somente para. O serviço não exige permissões mais amplas.
+ Monitore CloudWatch as métricas de falhas no upload de mídia e defina alarmes para detectar problemas de configuração.