

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

# Amazon S3 文档元数据
<a name="s3-metadata"></a>

您可以使用元数据文件向 Amazon S3 存储桶中的文档添加元数据（有关文档的其他信息）。每个元数据文件都与一个已编入索引的文档相关联。

您的元数据文件必须与已编入索引的文件存储在同一个存储桶中。创建数据源时，您可以使用控制台或`DocumentsMetadataConfiguration`参数`S3Prefix`字段为元 Amazon S3 数据文件指定存储桶中的位置。如果未指定 Amazon S3 前缀，则元数据文件必须与已编入索引的文档存储在相同的位置。

如果您为元数据文件指定 Amazon S3 前缀，则这些文件位于与已编入索引的文档平行的目录结构中。 Amazon Kendra 仅在指定目录中查找您的元数据。如果未读取元数据，请检查目录位置是否与元数据的位置相匹配。

以下示例展示了如何将已编入索引的文档位置映射到元数据文件位置。请注意，文档的 Amazon S3 密钥会附加到元数据的前 Amazon S3 缀后面，然后在后缀后面加上`.metadata.json`以形成元数据文件的路径。 Amazon S3 带有元数据 Amazon S3 前缀和`.metadata.json`后缀的组合 Amazon S3 密钥总长度不得超过 1024 个字符。建议将 Amazon S3 密钥保持在 1000 个字符以下，以便在将密钥与前缀和后缀组合时考虑其他字符。

```
Bucket name:
     s3://bucketName
Document path:
     documents
Metadata path:
     none
File mapping
     s3://bucketName/documents/file.txt -> 
        s3://bucketName/documents/file.txt.metadata.json
```

```
Bucket name:
     s3://bucketName
Document path:
     documents/legal
Metadata path:
     metadata
File mapping
     s3://bucketName/documents/legal/file.txt -> 
        s3://bucketName/metadata/documents/legal/file.txt.metadata.json
```

文档元数据在 JSON 文件中定义。该文件必须是没有 BOM 标记的 UTF-8 文本文件。JSON 文件的文件名必须是 `<document>.<extension>.metadata.json`。在此示例中，“document”是应用元数据的文档的名称，“extension”是该文档的文件扩展名。在 `<document>.<extension>.metadata.json` 中，文档 ID 必须是唯一的。

JSON 文件的内容遵循此模板。所有这些 attributes/fields 都是可选的，因此不必包含所有属性。必须为要包含的每个属性提供一个值；该值不能为空。如果您未指定`_source_uri`，则搜索结果 Amazon Kendra 中返回的链接将指向包含该文档的 Amazon S3 存储桶。 `DocumentId`映射到字段，`s3_document_id`并且是 S3 中文档的绝对路径。

```
{
    "DocumentId": "S3 document ID, the S3 path to doc",
    "Attributes": {
        "_category": "document category",
        "_created_at": "ISO 8601 encoded string",
        "_last_updated_at": "ISO 8601 encoded string",
        "_source_uri": "document URI",
        "_version": "file version",
        "_view_count": number of times document has been viewed,
        "custom attribute key": "custom attribute value",
        additional custom attributes
    },
    "AccessControlList": [
         {
             "Name": "user name",
             "Type": "GROUP | USER",
             "Access": "ALLOW | DENY"
         }
    ],
    "Title": "document title",
    "ContentType": "For example HTML | PDF. For supported content types, see [Types of documents](https://docs.aws.amazon.com/kendra/latest/dg/index-document-types.html)."
}
```

`_created_at` 和 `_last_updated_at` 元数据字段是 ISO 8601 编码的日期。例如，2012-03-25T12:30:10\$101:00 是中部欧洲时间 2012 年 3 月 25 日中午 12:30（10 秒）的 ISO 8601 日期-时间格式。

您可以向 `Attributes` 字段添加有关文档的其他信息，该文档用于筛选查询或对查询响应进行分组。有关更多信息，请参阅 [创建自定义文档字段](custom-attributes.md)。

您可以使用 `AccessControlList` 字段来筛选查询响应。这样，只有特定的用户和组才能访问文档。有关更多信息，请参阅 [根据用户上下文进行筛选](user-context-filter.md)。