开发者社区 问答 正文

OSS如何实现设置对象/文件元信息?

对象/文件元信息(Object Meta)是对上传到OSS的文件的属性描述,分为两种:HTTP标准属性(HTTP Headers)和 User Meta(用户自定义元信息)。文件元信息可以在各种方式上传时或者拷贝文件时进行设置。
[backcolor=transparent]HTTP标准属性

名称描述
Cache-Control指定该Object被下载时的网页的缓存行为
Content-Disposition指定该Object被下载时的名称
Content-Encoding指定该Object被下载时的内容编码格式
Content-Language指定该Object被下载时的内容语言编码
Expires过期时间
Content-Length该Object大小
Content-Type该Object文件类型
Last-Modified最近修改时间

[backcolor=transparent]User Meta
为了便于用户对Object进行更多描述,OSS中规定所有以x-oss-meta-为前缀的参数视为User Meta,比如x-oss-meta-location。一个Object可以有多个类似的参数,但所有的User Meta总大小不能超过8KB。这些User Meta信息会在下载GetObject或者HeadObject的时候在HTTP头部中返回。

上传Object时设置Object Meta


当上传Object的时候,可以设置Object Meta。
功能使用参考:
  • API:Put Object
  • SDK:Java SDK-上传文档中的[backcolor=transparent]设定Object的Http Header 和 [backcolor=transparent]用户自定义元信息

分片上传(断点续传)的时候也可以设置Object Meta。
功能使用参考:

上传Object后修改Object Meta


如果需要修改Object Meta而不修改Object本身的数据,那么应该使用拷贝Object的接口来实现这个功能,只需要将新的Meta信息(注意这个Meta必须是全量)放在HTTP头部中,然后将拷贝的源地址和目标地址都设为目标Object的地址即可。
功能使用参考:

获取Object Meta


如果需要获取Object Meta而并不需要Object本身的数据,可以使用此功能。
功能使用参考:

展开
收起
青衫无名 2017-10-17 15:35:20 2812 分享 版权
阿里云 AI 助理回答

阿里云对象存储(OSS)允许用户在上传文件(Object)时或之后,通过元信息来描述和管理这些文件。元信息分为两类:HTTP标准属性和用户自定义元信息(User Meta),以提供关于文件的额外上下文。

HTTP标准属性

这些属性是根据HTTP协议定义的,用于控制文件的缓存、内容类型等。例如: - Cache-Control:指示浏览器或其他缓存系统如何缓存该对象。 - Content-Disposition:指定下载时的文件名,便于客户端处理。 - Content-Encoding:告知客户端内容的编码方式,如gzip压缩。 - Content-Language:标识内容的语言。 - Expires:设置对象过期时间。 - Content-Length:对象的大小。 - Content-Type:对象的MIME类型,如image/jpeg。 - Last-Modified:对象最后修改的时间。

User Meta(用户自定义元信息)

用户可以添加自定义的键值对作为元数据,以便于进一步分类、搜索或记录与对象相关的特定信息。这些元数据必须以x-oss-meta-为前缀,且总大小不超过8KB。例如,x-oss-meta-location可以用来记录文件的物理存储位置信息。

操作指南

上传时设置Object Meta

  • 使用Put Object API或Java SDK中的上传方法时,可以通过参数设置HTTP标准属性和User Meta。

分片上传(断点续传)设置Meta

  • 在使用分片上传时,可以在初始化多部分上传(InitiateMultipartUpload)后,通过各分片上传(UploadPart)操作虽然不直接设置元数据,但最终完成上传(CompleteMultipartUpload)时,可以汇总所有元数据并提交。

修改Object Meta

  • 若要修改元数据而不改变文件内容,应使用Copy Object API或相应的SDK方法,将源和目标都设为同一个Object,并在请求头中包含新的元数据。

获取Object Meta

  • 使用Head Object API或Java SDK中的相应方法,可以获取一个对象的所有元数据,而无需下载对象本身。

通过上述功能,用户可以灵活地管理和检索存储在阿里云OSS中的对象的元信息,增强文件管理的效率和便利性。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答