对象元数据

本页面讨论了 Cloud Storage 中随同对象一起存储的元数据字段。如需了解如何查看和设置对象的元数据,请参阅查看和修改对象元数据

简介

存储在 Cloud Storage 中的对象具有与其关联的元数据。元数据用于标识对象的属性,并指定了访问对象时应如何处理对象。元数据以键值对的形式存在。例如,对象的存储类别由元数据条目 storageClass:STANDARD 表示。storageClass 是元数据的键,所有对象都有这样一个与其关联的键STANDARD 指定了此特定对象具有的值,该值因对象而异

元数据的可变性各不相同:有些元数据您随时可以修改,有些元数据您只能在创建对象时设置,有些元数据您只能查看。例如,您可以随时修改 Cache-Control 元数据的值,但只能在创建或重写对象时才能分配 storageClass 元数据,而且不能直接修改 generation 元数据的值;不过,当您重写对象时,generation 值会发生变化。

可修改的元数据

用户可以更改对象的两类元数据:

  • 固定键元数据:设置了键的元数据(但您可以为该元数据指定值)。

  • 自定义元数据:通过指定键以及与该键关联的值而添加的元数据。

修改元数据时,通常应避免使用非 ASCII 字符,因为 XML API 使用的 HTTP 标头中不允许包含这些字符。使用 XML API 时,请求网址和 HTTP 标头的总大小也不得超过 16 KB,因此,元数据的总大小应将此限制考虑在内。

固定键元数据

您可以修改对象的以下元数据,但您必须具有足够的权限

访问权限控制元数据

Cloud Storage 使用身份和访问权限管理 (IAM)访问控制列表 (ACL) 来控制对象的访问权限。您可以访问这些链接,了解这些访问控制方法和相关元数据。

Cache-Control

Cache-Control 元数据可以指定有关如何从 Cloud Storage 中传送数据的两个不同方面:是否可以缓存数据,以及是否可以转换数据。

缓存数据

利用 Cache-Control 元数据,您可以控制浏览器和互联网缓存是否可以缓存您的对象以及缓存多长时间,缓存的对象可用于服务未来的请求。Cache-Control 仅在访问以下对象时适用:

Cache-Control 的值设置为 public 表示对象可以缓存到任何位置。将值设置为 private 表示对象可以缓存到请求者的本地缓存中。将值设置为 no-cache 表示对象可以缓存,但除非先通过 Cloud Storage 验证,不能用于服务未来的请求。

您还可以向 Cache-Control 元数据添加 max-age=[TIME_IN_SECONDS] 的值。max-age 值表示对象在被视作过时之前可缓存的时长。缓存不会提供过时的对象,特殊情况下除外。

如果适用对象没有 Cache-Control 元数据条目,则 Cloud Storage 在传送该对象的响应中使用默认值 public, max-age=3600

如果您允许缓存,则下载内容可能会继续接收旧版本的对象,即使在上传新版本后也是如此。这是因为在 max-age 确定的时间段内,旧版本在缓存中仍被视为处于“全新”状态。此外,由于对象可在互联网上的任何位置缓存,因此无法在全局范围内强制缓存对象到期。如果您想阻止提供可公开读取的缓存版对象,请在对象上设置 Cache-Control:no-cache, max-age=0

转换数据

Cache-Control 元数据还允许您按原样传送存储的对象,而不对数据应用任何转换,例如为不兼容的客户端移除 gzip 内容编码。如需按原样传送对象,请设置 Cache-Control:no-transform

Content-Disposition

Content-Disposition 元数据指定了与要传输的数据有关的展示信息。通过设置 Content-Disposition,您可以控制内容的展示样式,例如,确定是否应自动显示附件,或者是否需要用户执行某种形式的操作才能打开它。有关 Content-Disposition 规范,请参阅 https://tools.ietf.org/html/rfc6266

Content-Encoding

Content-Encoding 元数据可用于指示对象是否已被压缩,同时您仍可保留对象的基本 Content-Type。例如,以 gzip 格式压缩的文本文件可能具有以下特征:Content-Type 表明这是一个文本文件,而 Content-Encoding 表明该文件已采用 gzip 格式进行压缩。您应确保在上传文件之前,确实已使用指定的 Content-Encoding 压缩文件;否则,在尝试下载对象时,可能会发生意外行为。如需了解详情,请参阅“转码”页面

对于可压缩的内容(例如文本),使用 Content-Encoding: gzip 可节省网络和存储费用,并提高内容传送性能。但是,对于本身已经压缩的内容(例如归档和许多媒体格式),再压缩一次并在 Content-Encoding 元数据中进行标记通常不利于对象的大小和性能,因此应避免此操作。

Content-Language

Content-Language 元数据指示对象面向的语言。如需了解此元数据支持的值,请参阅 ISO 639-1 语言代码。

Content-Type

最常设置的元数据是 Content-Type(也称为媒体类型),它使浏览器能够正确呈现对象。所有对象都在自己的 Content-Type 元数据中指定了一个值,但此值不需要与对象的基础类型匹配。例如,如果上传者未指定 Content-Type,也无法确定此属性,则此属性会设置为 application/octet-streamapplication/x-www-form-urlencoded(具体取决于您上传对象的方式)。如需查看有效内容类型的列表,请参阅 IANA 媒体类型页面。

自定义元数据

自定义元数据是您可以添加和移除的元数据。如需创建自定义元数据,您需要同时指定值和键。创建自定义元数据 key:value 对后,您可以删除键或更改值。

如需了解如何设置自定义元数据,请参阅“查看和修改元数据”页面。请注意,使用自定义元数据会产生存储空间和网络费用

不可修改的元数据

某些元数据不可直接修改。此元数据是在创建或重写对象时设置的。在对象的创建或重写过程中,您可以设置某些此类元数据,例如对象的存储类别客户提供的加密密钥。其他元数据会自动添加且仅供查看,例如对象的世代编号或创建时间。

此页内容是否有用?请给出您的反馈和评价:

发送以下问题的反馈:

此网页
Cloud Storage
需要帮助?请访问我们的支持页面