如何用条件过滤az storage blob list结果?筛选180天前修改的Blob
筛选最后修改时间180天或更早的Blob
要实现仅返回最后修改时间为180天或更早的Blob,你需要修改az storage blob list命令的--query参数,添加时间过滤条件,同时提前计算出180天前的时间戳作为筛选阈值。
修改后的代码示例
echo "==== Blobs in Container ====" # 计算180天前的ISO 8601格式时间(适配Linux环境) cutoff_date=$(date -d "-180 days" --iso-8601=seconds) # 调用az命令并添加时间过滤条件 blobsBeforeDirectoryFilter=$(az storage blob list --container-name azureml \ --account-name *** \ --account-key *** \ --prefix ExperimentRun/ \ --query "[?lastModified <= '$cutoff_date'].{name:name}" --output tsv)
关键说明
- 时间计算:用
date命令生成180天前的ISO 8601格式时间(和Azure Blob返回的lastModified格式完全匹配),保证时间比较的准确性。 - JMESPath过滤:在
--query参数中通过[?lastModified <= '$cutoff_date']筛选出符合时间条件的Blob,再提取名称字段。
如果是在macOS环境下,调整时间计算命令即可:
# macOS下计算180天前的ISO时间 cutoff_date=$(date -v -180d +"%Y-%m-%dT%H:%M:%SZ")
内容的提问来源于stack exchange,提问作者LukeDornburgh
相关产品推荐
相关产品推荐

