使用文件列将文件数据存储到指定的最大大小。 文件列已优化,以用于存储二进制数据。 Dataverse 不会将此数据保存在关系数据存储中,这会提高性能并减少容量使用。 详细了解存储容量。
自定义表或可定制的表可以包含零个或多个文件列。 本文介绍如何在代码中使用列定义。 若要使用存储在这些列中的数据,请参阅 “使用文件列数据”。
创建文件列
创建文件列的建议方法是使用 Power Apps 并使用设计器定义列。 有关详细信息,请参阅 文件列。
注释
创建文件列时的一个关键考虑因素是属性中存储的最大文件大小。 此属性的默认设置为 32768或 32 MB。 最大值为 10485760 KB(10 GB)。 虽然 API 可以处理大小高达 10 GB 的文件,但请求必须分块。 发送单个请求的大小限制为 128 MB。 当客户端应用程序尝试在单个请求中发送大于 128 MB 的文件时,将引发错误。
了解如何上传文件。
创建文件列后,无法使用设计器更改 MaxSizeInKBPower Apps 中的值。
可以使用 API 更新 MaxSizeInKB 属性。 有关详细信息,请参阅 使用 Web API 更新列 和 使用 SDK 更新列。
还可以使用用于 .NET 的 Dataverse SDK 或使用 Web API 创建文件列。 以下示例演示如何创建文件列:
将 FileAttributeMetadata 类 与 CreateAttributeRequest 类 配合使用来创建文件列。
public static void CreateFileColumn(
IOrganizationService service,
string entityLogicalName,
string fileColumnSchemaName)
{
FileAttributeMetadata fileColumn = new()
{
SchemaName = fileColumnSchemaName,
DisplayName = new Label("Sample File Column", 1033),
RequiredLevel = new AttributeRequiredLevelManagedProperty(
AttributeRequiredLevel.None),
Description = new Label("Sample File Column for FileOperation samples", 1033),
MaxSizeInKB = 30 * 1024 // 30 MB
};
CreateAttributeRequest createfileColumnRequest = new() {
EntityName = entityLogicalName,
Attribute = fileColumn
};
service.Execute(createfileColumnRequest);
}
使用 FileAttributeMetadata.MaxSizeInKB 属性设置最大大小。
有关详细信息,请参见:
阻止的文件类型
可以根据文件扩展名和 MIME 类型控制不允许在文件列中保存的文件类型。
有关详细信息,请参见:
使用自管理密钥的限制 (BYOK)
重要
在 Dataverse 中使用“文件和全大小图像”数据类型时,存在一些限制。 如果在租户上启用了 自管理密钥(BYOK), 则 IoT 数据类型对租户的组织不可用。 包含排除数据类型的解决方案不会安装。 客户必须选择退出 BYOK 才能使用这些数据类型。
截至版本:9.2.21052.00103 的所有 BYOK 组织都可以支持使用 Dataverse 文件和图像数据类型。 BYOK 组织中的文件限制为每个文件的最大大小为 128MB。 BYOK 组织中的所有文件和映像都存储在 Dataverse 关系存储中,而不是 Dataverse 文件 Blob 存储。 其他限制:
- 不支持 SAS 用户委托下载
- 分块上传和下载限制为单个区块