赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 对象存储
  4. 开发参考
  5. 常用工具
  6. 命令行工具ossutil 2.0
  7. 最佳实践
  8. 基于对象元数据进行筛选

基于对象元数据进行筛选

  • 最佳实践
  • 发布于 2025-04-21
  • 0 次阅读
文档编辑
文档编辑

本文将详细为您介绍如何通过ossutil根据对象的元数据进行过滤,筛选出您需要的内容。

使用场景

对于包含大量对象(Object)的Bucket,直接浏览或处理会非常耗时。因此,ossutil 2.0提供了一系列高效的基于元数据进行过滤的选项,允许用户根据特定元数据属性对Object进行精准筛选。

前提条件

  • 已开通OSS服务。

  • 已创建Bucket。

  • 已安装ossutil 2.0命令行工具。

元数据过滤

ossutil 2.0 支持基于Object元数据的精细化操作筛选,这一功能主要适用于多个高级命令,如 ls(列举资源)、cp(上传、下载、拷贝文件)和 rm(删除)。用户可以根据对象的特定元数据属性(如对象类型)进行筛选,提高效率。

参数说明

参数

类型

说明

--metadata-include

stringArray

指定需包含的元数据规则,即仅显示符合这些规则的Object。

--metadata-exclude

stringArray

指定需排除的元数据规则,符合条件的Object将不被显示。

--metadata-filter

stringArray

直接定义元数据过滤规则,支持更灵活的匹配逻辑。

--metadata-filter-from

stringArray

从外部文件读取元数据过滤规则,便于复杂规则的管理和复用。

  • 使用--metadata-include时,自动隐式追加一条排除所有其他类型文件的规则- **至列表末尾。

  • 使用 --metadata-filter "+ 规则" 添加包含规则时,不会自动添加所有的排除规则,即 --metadata-include "规则" 等于 --metadata-filter "+ 规则"+--metadata-filter "- **"。例如,若要精确筛选出bucket中的所有JPEG图像文件,需要设置为--metadata-filter "+ content-type=image/jpeg" --metadata-filter "- **"

  • 在处理多文件规则列表时,文件顺序遵循从左到右的规则执行,而每个文件内部的规则是按照自上而下顺序执行,并忽略空行及以#或;开始的注释行。

  • 匹配到首个规则后,会停止后续的规则检查。

支持的元数据类型

  • 存储类型:采用x-oss-storage-class=value,value取值Standard、IA、Archive、ColdArchive、DeepColdArchive。

  • Object类型:采用x-oss-object-type=value,value取值Normal、Multipart、Appendable、Symlink。

  • 解冻恢复状态:采用x-oss-restore=value,value根据实际值填写。

  • Content-Type:采用 content-type=value,value根据实际值填写。

  • 用户自定义元数据:用户自定义元数据应遵循规范格式x-oss-meta-aaa=value,其中x-oss-meta-是固定前缀,表示用户自定义元数据的开始,而aaa部分允许您根据需求自定义键名,value根据实际值填写。例如x-oss-meta-location:hangzhou。

示例

筛选特定存储类型的对象

  • 以下命令用于筛选examplebucket中存储类型为标准存储的对象。

    ossutil ls oss://examplebucket --metadata-include "x-oss-storage-class=Standard"
  • 以下命令用于筛选examplebucket中归档,冷归档和深度冷归档类型的对象。

    ossutil ls oss://examplebucket --metadata-include "x-oss-storage-class=*Archive"

筛选特定解冻状态的对象

参数

类型

示例值

描述

x-oss-restore

字符串

  • 正在解冻:ongoing-request="true"

  • 已解冻:ongoing-request="false", expiry-date="Thu, 04 Jan 2024 03:28:54 GMT"

您可以调用HeadObject接口并检查返回头x-oss-restore来获取解冻状态信息

  • 如果没有进行解冻操作,或者解冻操作已经超时,那么x-oss-restore字段不会返回。

  • 如果进行了解冻操作,但解冻未完成,x-oss-restore字段会显示ongoing-request="true"。

  • 如果进行了解冻操作,且解冻完成,x-oss-restore字段将会显示ongoing-request="false",并且会包含一个expiry-date,它表示对象可读状态的截止时间。

  • 以下示例用于筛选examplebucket中正处于解冻状态的对象,其中**标识用来匹配任何时间。

    ossutil ls oss://examplebucket --metadata-include "x-oss-restore=ongoing-request=\"true\"**"
  • 以下示例用于筛选examplebucket中已经解冻完成的对象,其中**标识用来匹配任何时间。

    ossutil ls oss://examplebucket --metadata-include "x-oss-restore=ongoing-request=\"false\"**"

筛选特定元数据属性的对象

  • 以下命令用于筛选examplebucket中所有JPEG格式的图片文件,以便进行特定的操作或数据分析:

    ossutil ls oss://examplebucket --metadata-include "content-type=image/jpeg"
  • 以下命令用于筛选examplebucket中所有txt格式的文件,其后的*5.txt规则实际上不会产生额外效果:

    ossutil ls oss://examplebucket --metadata-include "*.txt"  --metadata-include "*5.txt"

筛选特定格式的对象

以下命令用于筛选examplebucket中所有JPEG格式的图片文件。使用--metadata-filter参数,并结合+和-符号来指定包含和排除条件。将列出存储桶examplebucket中所有Content-Type为image/jpeg的文件,而其他类型的文件将被排除在外。

ossutil ls oss://examplebucket --metadata-filter "+ content-type=image/jpeg" --metadata-filter "- **"

通过规则文件实现复杂条件筛选

当过滤条件较为复杂或者需要同时应用多个不同的过滤规则时,可以预先创建规则文件进行筛选。

以下规则文件metadata_filters.txt用于筛选出存储类型为标准存储的所有JPEG图片:

# rules file: metadata_filters.txt
+ content-type=image/jpeg
+ x-oss-storage-class=Standard
- **

使用--metadata-filter-from选项调用该规则文件来进行筛选:

ossutil ls oss://examplebucket --metadata-filter-from metadata_filters.txt
相关文章

定时同步任务 2025-04-21 17:22

在日常的文件管理工作中,我们常常需要将本地文件与云端存储进行同步,以确保数据的安全备份和便捷访问。阿里云对象存储(OSS)是一款稳定可靠的云存储服务,能够满足我们对于文件存储和管理的需求。本文为您介绍如何通过配置定时任务,将本地文件自动同步至 OSS ,让您的文件管理更加高效便捷。 操作场景 某文件

上传下载时限速 2025-04-21 17:22

在进行大文件上传下载至OSS时,如果存在网络环境复杂多变或需要同时处理多任务等情况,您可以使用ossutil的限速功能实现对文件传输速度的有效控制,从而更好地满足数据的管理与使用需求,提升数据处理效率。 说明 该限

断点文件续传 2025-04-21 17:22

在网络不稳定的情况下,连接中断可能导致文件传输失败,使用 ossutil 2.0 的断点续传功能从中断的地方继续上传或下载,从而提升传输效率。在 ossutil 2.0 中,默认情况下不启用断点续传。如果需要使用此功能,请在执行cp命令时指定 --checkpoint-dir 参数来启用断点续传。

下载大文件到机械硬盘 2025-04-21 17:21

本文将详细为您介绍如何通过ossutil下载大文件到机械硬盘,顺利完成文件传输任务。 使用场景 在大文件下载的过程中,我们经常会遇到网络不稳定的情况,这可能导致文件传输中断,给工作带来极大的不便,对于外挂硬盘的场景,文件传输中断的可能性高。ossutil 提供了断点续传功能,能够很好地解决因网络问题

基于对象元数据进行筛选 2025-04-21 17:21

本文将详细为您介绍如何通过ossutil根据对象的元数据进行过滤,筛选出您需要的内容。 使用场景 对于包含大量对象(Object)的Bucket,直接浏览或处理会非常耗时。因此,ossutil 2.0提供了一系列高效的基于元数据进行过滤的选项,允许用户根据特定元数据属性对Object进行精准筛选。

批量解冻文件 2025-04-21 17:21

归档、冷归档或深度冷归档存储类型的数据在存储时为了降低成本而被冻结无法直接读取,您可以使用ossutil 2.0提供的restore(解冻文件)命令对文件进行批量解冻,完成解冻后支持访问。 说明 归档存储类型的文件支持开启归档直读功能,而冷归档和深度冷归档文件则必须

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号