文件元信息是对文件的属性描述,包括HTTP标准属性(HTTP Header)和用户自定义元数据(User Meta)两种。您可以通过设置文件HTTP头来自定义HTTP请求的策略,例如文件(Object)缓存策略、强制下载策略等。您还可以通过设置用户自定义元数据来标识Object的用途或属性等。

HTTP标准属性

OSS将为上传至Bucket中的每个Object保留如下HTTP标准属性。

名称 描述
Content-Type 指定Object的内容类型。内容类型决定浏览器将以什么形式、什么编码读取文件。如果没有指定内容类型,则根据文件的扩展名生成。如果文件没有扩展名,则内容类型的默认值application/octet-streamContent-Type的常见设置请参见OSS如何设置Content-Type(MIME)?
Content-Encoding 声明Object的编码方式。您需要按照Object 的实际编码类型填写,否则可能造成客户端(浏览器)解析编码失败或Object下载失败。若Object未编码,请置空此项。取值如下:
  • identity(默认值):表示Object未经过压缩或编码。
  • gzip:表示Object采用Lempel-Ziv(LZ77)压缩算法以及32位CRC校验的编码方式。
  • compress:表示Object采用Lempel-Ziv-Welch(LZW)压缩算法的编码方式。
  • deflate:表示Object采用zlib结构和deflate压缩算法的编码方式。
  • br:表示Object采用Brotli算法的编码方式。
Content-Language 声明Object内容使用的语言。
Content-Disposition 指定Object的展示形式。取值如下:
  • inline:预览Object。
  • attachment:将Object下载到本地。例如attachment; filename="example.jpg",表示下载Object到本地并以example.jpg文件名进行保存。
注意 在以下情况中通过浏览器访问OSS内的Object,即使Content-Disposition取值为inline,也会直接下载Object:
  • Object为网页文件,未使用Bucket绑定的自定义域名进行访问。
  • Object为图片文件,Object所在的Bucket于2019年9月23日之后创建,且未使用Bucket绑定的自定义域名进行访问。
  • 请求的Object为浏览器不支持预览的类型。
Cache-Control 指定Object的缓存行为。取值如下:
  • no-cache:不可直接使用缓存,而是先到服务端验证Object是否已更新。如果Object已更新,表明缓存已过期,需从服务端重新下载Object;如果Object未更新,表明缓存未过期,此时将使用本地缓存。
  • no-store:所有内容都不会被缓存。
  • public:所有内容都将被缓存。
  • private:所有内容只在客户端缓存。
  • max-age=<seconds>:缓存内容的相对过期时间,单位为秒。此选项仅在HTTP 1.1中可用。
Expires 缓存内容的绝对过期时间,格式是格林威治时间(GMT)。例如2022-10-12T00:00:00.000Z。如果Cache-Control设置了max-age=<seconds>,以max-age=<seconds>为准。
Last-Modified Object的最后修改时间。
Content-Length Object的大小,单位为字节。

用户自定义元数据

您可以在上传Object时,为Object添加自定义元数据(User Meta),用于标识Object的用途或属性等。

  • 一个Object可以有多个自定义元数据,但所有的自定义元数据总大小不能超过8 KB。
  • 自定义元数据是一组键值对,元数据名称必须以x-oss-meta-开头。例如x-oss-meta-last-modified:20210506,可用于记录本地文件最后修改时间为2021年5月6日。
  • 调用GetObject或者HeadObject接口时,将在HTTP头部返回自定义元数据。

操作方式

您可以选用如下任意方式设置、获取以及修改文件元信息。

操作方式 说明
控制台 Web应用程序,直观易用。
图形化工具 ossbrowser 图形化工具,易操作。
命令行工具 ossutil 命令行工具,性能好。
Java SDK 丰富、完整的各类语言 SDK demo。
Python SDK
PHP SDK
Go SDK
C++ SDK
C SDK
.NET SDK
Node.js SDK
Android SDK