azure-storage - 通过 REST API 为 Azure 存储生命周期管理添加规则不会持续存在(请求不会引发错误) - 使用 StorageV2
问题描述
我正在尝试通过 REST API 添加一个简单的规则,但它不会持续存在。响应 = OK,并且没有抛出错误。我可以通过 powershell 创建相同的规则并且它可以工作。
提交 JSON 后,我收到 HttpStatus“OK”并返回响应负载,但该规则未保存并显示在 Azure 门户中。
请求正文:
{
"properties": {
"policy": {
"rules": [
{
"enabled": true,
"name": "myRule",
"type": "Lifecycle",
"definition": {
"actions": {
"baseBlob": {
"delete": {
"daysAfterModificationGreaterThan": 10
}
}
}
},
"filters": {
"blobTypes": [
"blockBlob"
]
}
}
]
}
}
}
HttpStatus = OK
响应正文:
{
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/blobServices/default",
"name": "default",
"type": "Microsoft.Storage/storageAccounts/blobServices",
"properties": {}
}
任何想法为什么这不起作用,我还没有找到任何更新的 API 版本???
解决方案
根据您提供的响应正文,您犯了一个错误。filters
应该是 中的一个属性definition
。更多详情,请参阅此处。
例如
{
"properties": {
"policy": {
"rules": [{
"enabled": true,
"name": "deleteBlock",
"type": "Lifecycle",
"definition": {
"actions": {
"baseBlob": {
"delete": {
"daysAfterModificationGreaterThan": 180
}
}
},
"filters": {
"blobTypes": [
"blockBlob"
]
}
}
}
]
}
}
}
此外,请注意生命周期管理功能适用于通用 v2 (GPv2) 帐户、blob 存储帐户、高级块 Blob 存储帐户的所有 Azure 区域。更多详情请参考官方文档
推荐阅读
- mysql - mysql 使用 CONCAT 从另一个表更新表列
- javascript - .innerHTML 编辑 HTML 但不显示
- java - Hashmap 仅返回所有 WebElement 中的一个值
- java - 无法使用 gradle 生成 Spring Boot 配置元数据
- java - 从外部数据源(例如从套接字读取的数据)修改 Java JTable AbstractTableModel
- google-bigquery - 试用用户:BigQuery Reservation 在 GCP 上的所有区域都有 0 个空位可供我使用。如何购买插槽?
- javascript - 如何合并重复数组?
- javascript - Vue/Electron/Webpack 在改变图像路径后找不到图像模块
- r - 任何使用 superlu 的 R 包都可以安装在 Windows 中
- r - 我在 RStudio 中的这个 ifelse, is.na, lag 函数做错了什么?未能返回以下正确的 0 和 1