你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

存储任务条件

存储任务包含一组条件和操作。 本文介绍条件的 JSON 格式。 如果计划使用 Azure 门户以外的工具(例如:Azure PowerShell 或 Azure CLI)创建存储任务,则了解该格式非常重要。 本文还列出了可用于组合条件子句的属性和运算符。

本文的重点在于连接。 若要详细了解操作,请参阅存储任务操作

重要

Azure 存储操作目前为预览版,已在这些区域中提供。 有关 beta 版本、预览版或尚未正式发布的版本的 Azure 功能所适用的法律条款,请参阅 Microsoft Azure 预览版的补充使用条款

条件格式

一个或多个子句的条件集合。 每个子句都包含一个属性、一个值和一个运算符。 存储任务运行时,它使用运算符将属性与值进行比较,以确定目标对象是否满足子句。 在子句中,运算符始终先出现在属性前面,然后是值。 下图显示了如何在表达式中定位每个元素。

显示具有运算符、属性和值的简单条件的格式的图。

以下子句仅允许对 Microsoft Word 文档执行操作。 此子句面向以文件扩展名 .docx 结尾的所有文档。 因此,运算符为 endsWith,属性为 Name,值为 .docx

{
   "condition": "[[[endsWith(Name, '.docx')]]"
}

有关运算符和属性名称的完整列表,请参阅本文支持的运算符支持的属性部分。

条件中的多个子句

条件可以包含用逗号分隔的多个子句以及字符串 andor。 字符串 and 以满足条件中所有子句中的条件的对象为目标,而 or 以满足条件的任何子句中的条件的对象为目标。 下图显示了 andor 字符串的位置以及两个子句。

显示包含两个子句的条件的格式的图。

以下 JSON 显示包含两个子句的条件。 由于此表达式中使用了 and 字符串,因此这两个子句在对对象执行操作之前必须计算为 true

{
"condition": "[[and(endsWith(Name, '.docx'), equals(Tags.Value[readyForLegalHold], 'Yes'))]]"
}

条件组

分组的子句作为独立于子句的其余部分的一个单元来运行。 对子句进行分组类似于在数学等式或逻辑表达式两侧加上括号。 组中第一个子句的 andor 字符串会应用于整个组。

下图显示了两个子句组合在一起。

显示包含两个组合在一起的子句的条件的格式的图。

以下条件仅允许对 Microsoft Word 文档执行操作,其中文档的 readyForLegalHold 标记设置为 Yes 值。 即使其他两个条件不为 true,也会对大于 100 字节的对象执行操作。

{
"condition": "[[[or(and(endsWith(Name, '.docx'), equals(Tags.Value[readyForLegalHold], 'Yes')), greater(Content-Length, '100'))]]"
}

Azure 门户中的代码视图

Azure 门户中提供的可视化编辑器,可以为你生成条件的 JSON。 可以使用编辑器定义条件,然后通过打开“代码”选项卡来获取 JSON 表达式。当创建复杂的条件集时,此方法非常有用,因为 JSON 表达式可能变得庞大、笨拙且难以手动创建。 下图显示了视觉编辑器中的“代码”选项卡。

视觉设计器的“代码”选项卡中显示的条件 JSON 的屏幕截图。

若要了解有关视觉编辑器的详细信息,请参阅定义存储任务条件和操作

支持的属性

下表显示了可用于构成条件的每个子句的属性。 子句可以包含字符串、布尔值、数字以及日期和时间属性。

字符串 日期和时间 3 数字 布尔
AccessTier1 AccessTierChangeTime Content-Length 已删除
Metadata.Value Creation-Time TagCount IsCurrentVersion
名称 DeletedTime
BlobType2 LastAccessTime
Container.Metadata.Value[Name] Last-Modified
Container.Name
Container.Metadata.Value[Name]
Container.Name
Tags.Value[Name]
VersionId

1 允许的值为 HotCoolArchive

2 允许的值为 BlockBlobPageBlobAppendBlob

3 可设置为特定时间,或从对象动态获取的元数据值。 请参阅引用对象元数据中的值

支持的运算符

下表显示了可以在子句中用来评估每个属性值的运算符。

字符串 日期和时间 数字 布尔
contains equals equals equals
empty greater greater not
equals greaterOrEquals greaterOrEquals
endsWith less less
length lessOrEquals lessOrEquals
startsWith addToTime
匹配

另请参阅