

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 发送 RCS 文件消息
<a name="rcs-file-messages"></a>

您可以使用 `SendRcsMessage` API 中的`FileMessage`内容类型将图像、视频、音频文件和 PDF 作为独立消息发送给收件人。文件消息在收件人的消息应用程序中显示为内联媒体。

文件消息不同于富卡媒体。文件消息将单个媒体作为全部消息内容传送，而富卡片则将媒体与文本和建议的操作结合在一起。有关富卡的信息，请参阅[发送 RCS 富豪卡](rcs-rich-cards.md)。

您可以将消息级别的建议（例如回复片或操作按钮）附加到文件消息中。有关建议的详细信息，请参阅[配置 RCS 建议](rcs-suggestions.md)。

## FileMessage 结构
<a name="rcs-file-messages-structure"></a>

该`FileMessage`对象嵌套在`RcsMessageContent`参数的`Content`字段中。 Message-level`Suggestions`是`Content`（未嵌套在其中）的兄弟姐妹。

```
{
    "Content": {
        "FileMessage": {
            "FileUrl": "s3://my-media-bucket/campaigns/welcome-image.png",
            "ThumbnailUrl": "s3://my-media-bucket/thumbnails/welcome-thumb.jpg"
        }
    },
    "Suggestions": []
}
```

`FileUrl`（必需）  
要发送的文件的 S3 或 HTTPS 网址。最大长度为 2,000 个字符。网址必须与模式匹配`^(https://|s3://).+$`。最大 文件大小为 100MB。

`ThumbnailUrl`（可选）  
缩略图的 S3 或 HTTPS 网址。最大长度为 2,000 个字符。遵循与相同的 URL 模式`FileUrl`。推荐用于视频和 PDF 文件。

## 文件网址来源
<a name="rcs-file-messages-url-sources"></a>

该`FileUrl`参数接受两种 URL 格式：
+ **亚马逊 S3 网址** (`s3://bucket-name/object-key`)。当您指定 S3 URL 时，“AWS最终用户消息” 会检索对象、重新托管该对象，并生成一个有时间限制的预签名 URL 以传送到收件人的设备。S3 存储桶必须具有授予服务读取权限的基于资源的策略。请参阅[用于文件传输的 S3 存储桶策略](#rcs-file-messages-s3-policy)。
+ **HTTPS 网址** (`https://cdn.example.com/path/to/file.jpg`)。URL 将传递给承运人进行配送。此 URL 必须无需身份验证即可公开访问。不支持纯`http://`网址。

**注意**  
当您使用 S3 URL 时，API 会在请求时验证该对象是否存在、是否在大小限制之内并且可以访问。如果验证失败，API 将返回`ValidationException`带有描述性错误消息的。HTTPS 网址在请求时不会以同样的方式进行验证。

## 用于文件传输的 S3 存储桶策略
<a name="rcs-file-messages-s3-policy"></a>

要允许AWS最终用户消息从您的 Amazon S3 存储桶中检索文件，请将以下基于资源的策略附加到该存储桶：

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "sms-voice.amazonaws.com"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::YOUR-BUCKET/*"
        }
    ]
}
```

将 `YOUR-BUCKET`替换为存储桶名称。要限制对特定前缀的访问，请`/*`替换为所需的路径（例如，`arn:aws:s3:::YOUR-BUCKET/rcs-media/*`）。

**注意**  
如果您的存储桶使用 SSE-KMS 加密，则还必须向`sms-voice.amazonaws.com`服务授予使用密钥策略中的 KMS 密钥的权限。 SSE-S3 加密不需要额外的配置。

## 支持的媒体类型和大小限制
<a name="rcs-file-messages-media-types"></a>

下表列出了支持的媒体类型`FileMessage`。


| MIME 类型 | 扩展程序 | 最大大小 | 注意 | 
| --- | --- | --- | --- | 
| image/jpeg | .jpeg、.jpg | 100 MB | 推荐用于拍照。 | 
| image/png | .png | 100 MB | 支持透明度。推荐用于图形和徽标。 | 
| image/gif | .gif | 100 MB | 动画 GIF 可在安卓系统上播放。在 iOS 上呈现为静态模式。 | 
| video/mp4 | .mp4 | 5 MB | H.264 为了实现最广泛的兼容性，建议使用编解码器。 | 
| video/webm | .webm | 5 MB | VP8/VP9 编解码器。主要支持安卓系统。 | 
| audio/mp3 | .mp3 | 100 MB | 对音频的播放支持最为广泛。 | 
| audio/aac | .aac | 100 MB | 替代音频格式。 | 
| application/pdf | .pdf | 100 MB | Support 因运营商和地区而异。 | 

**重要**  
在 API 层强制执行 100 MB 文件大小限制。个别承运人可能会对向终端设备配送施加较低的限制。对于视频，运营商通常强制规定最大为 5 MB。将视频文件保持在 5 MB 以下，以确保成功传输。

## 缩略图
<a name="rcs-file-messages-thumbnails"></a>

您可以使用`ThumbnailUrl`参数为视频和 PDF 文件消息提供缩略图。在收件人打开或下载完整文件之前，缩略图将在对话中显示为预览。
+ 支持的缩略图格式：JPEG、PNG。
+ 缩略图网址遵循与`FileUrl`（S3 或 HTTPS，最多 2,000 个字符）相同的格式规则。
+ 使用与原始文件相匹配的纵横比，以避免在设备上裁剪。

## 发送文件消息
<a name="rcs-file-messages-sending"></a>

要发送文件消息，请使用`RcsMessageContent`参数内的`FileMessage`对象调用 `SendRcsMessage` API。您可以使用参数指定源身份（池或 AWS RCS 代理）。`--origination-identity`

以下 JSON 显示了带有建议的文件消息的`RcsMessageContent`值：

```
{
    "Content": {
        "FileMessage": {
            "FileUrl": "s3://my-media-bucket/documents/invoice.pdf",
            "ThumbnailUrl": "s3://my-media-bucket/thumbnails/invoice-thumb.jpg"
        }
    },
    "Suggestions": [
        {
            "Reply": {
                "Text": "Download receipt",
                "PostbackData": "action=download_receipt"
            }
        }
    ]
}
```

## 交付和备用
<a name="rcs-file-messages-delivery"></a>

当您发送文件消息时，“AWS最终用户消息” 会尝试通过 RCS 通道传送该消息。如果收件人的设备不支持 RCS，或者消息在传送前过期（基于该`TimeToLive`值），则该服务可以根据您的回退配置回退到短信或彩信。

您可以在池级别或每条消息上配置短信或彩信后备功能。有关回退行为的详细信息，请参阅[发送丰富的 RCS 消息](rcs-rich-messaging.md)。

**重要**  
RCS 文件消息适用于所有支持 RCS 的国家/地区。有关当前列表，请参阅[支持驻地协调员制度的国家](rcs-supported-countries.md)。