管理元数据

阅读时间5分钟
上次更新4 个月前

开始之前

要访问资源、数据集或文件中的任何元数据,请确保应用程序具有所有正确的访问权限。有关更多信息,请参阅管理身份用例

我该如何...?

创建元数据字段定义

要创建新的元数据字段,请执行以下步骤

  1. 创建一个CreateField对象并填写必要的信息。
  2. 使用组织 ID 和您的CreateField对象调用create_field_definition。对于FieldDefinitionType,可能的选项为
    • BOOLEAN
    • SELECTION
    • NUMBER
    • TEXT
    • TIMESTAMP
    • URL
    • USER
create_field = CreateFieldDefinition(
  key = "my_new_field",
  display_name = "My Field",
  type = unity_cloud.assets.FieldDefinitionType.SELECT,
  accepted_values = ["value1", "value2", "value3"],
  multiselection = False
)

unity_cloud.assets.create_field_definition(org_id = "0123456", create_field = create_field)

更新元数据字段定义

要更新元数据字段,请执行以下步骤

  1. 创建一个UpdateField对象以及要更新的信息。
  2. 使用组织 ID 和您的UpdateFieldobject调用update_field_definition
update_field = UpdateFieldDefinition(
  key = "my_new_field",
  display_name = "My Field with a new name",
  accepted_values = ["value1", "value2", "value3", "value4"]
)

unity_cloud.assets.update_field_definition(org_id = "0123456", update_field = create_field)

向 SELECT 元数据字段添加接受值

要向类型为SELECT的元数据字段添加接受值,请使用新值调用add_accepted_values_to_field_definition

此操作消除了使用所有现有值调用update_field_definition的必要性。


unity_cloud.assets.add_accepted_values_to_field_definition(org_id = "0123456", field_key = "my_new_field", accepted_values = ["value5", "value6"])

从 SELECT 元数据字段中删除接受值

要从类型为SELECT的元数据字段中删除接受值,请使用要删除的值调用remove_accepted_values_from_field_definition

此操作消除了使用要保留的值调用update_field_definition的必要性。


unity_cloud.assets.remove_accepted_values_from_field_definition(org_id = "0123456", field_key = "my_new_field", accepted_values = ["value5", "value6"])

删除元数据字段定义

要删除元数据字段,请使用其组织 ID 和字段键调用 delete_field_definition。

unity_cloud.assets.delete_field_definition(org_id = "0123456", field_key = "my_new_field")

列出所有字段定义

要检索组织中的所有元数据字段,请使用组织 ID 和是否要在列表中包含已删除的字段调用list_field_definitions

  • (可选) 添加参数 name_sorting_order 以按字母顺序对结果进行排序,可以是升序或降序。
  • (可选) 添加参数limit_to 以限制返回的结果数量。将其保持不变或设置为 0 以返回所有内容。
  • (可选) 添加参数skip 以指定要跳过的结果集合数量。与 limit_to 一起使用以对结果进行分页。
fields = unity_cloud.assets.list_field_definitions(
  org_id = "0123456",
  include_deleted = False,
  name_sorting_order = SortingOrder.ASCENDING,
  limit_to = 10,
  skip = 0)

获取字段定义

要从组织中检索元数据字段,请使用组织 ID 和字段的键调用get_field_definition

field = unity_cloud.assets.get_field_definition(org_id = "0123456", field_key = "my_new_field")

管理元数据

在管理Metadata字典时,请确保字典具有现有的元数据字段键,并且根据其类型具有一致的值。

对于类型为SELECT的字段,accepted_values 可以是字符串或字符串数组。这种区别取决于为 multiselection 设置的值。

  • 如果设置为TRUE,则accepted_values是一个字符串数组。
  • 如果设置为FALSE,则accepted_values是一个字符串。
  • 使用以下代码示例创建实体
metadata = dict()
metadata["Language"] = "C#"

asset_creation = AssetCreation(
  name = "your-asset-name",
  description = "your-asset-description",
  type = unity_cloud.assets.asset_type.MODEL_3D,
  metadata = metadata
)
  • 使用以下代码示例更新实体
    metadata = dict()
    metadata["Language"] = "C#"

    asset_update = AssetUpdate(
      name = "your-asset-name",
      metadata = metadata
    )
  • 使用以下代码示例获取实体的元数据
asset_metadata = unity_cloud.assets.get_asset_metadata(
  org_id = "012345",
  project_id = "1234abcd-ab12-cd34-ef56-123456abcdef",
  asset_id = "0123456789",
  keys = [])

asset_prog_language = asset_metadata["Language"]

dataset_metadata = unity_cloud.datasets.get_dataset_metadata(
  org_id = "012345",
  project_id = "1234abcd-ab12-cd34-ef56-123456abcdef",
  asset_id = "0123456789",
  dataset_id = "0123456789",
  keys = [])

file_Metadata = unity_cloud.files.get_file_metadata(
  org_id = "012345",
  project_id = "1234abcd-ab12-cd34-ef56-123456abcdef",
  asset_id = "0123456789",
  dataset_id = "0123456789",
  cloud_file_path = PurePosixPath("path/to/file.ext"),
  keys = [])