全部产品
Search
文档中心

对象存储 OSS:对象/文件(Object)

更新时间:Nov 29, 2024

对象(Object)是OSS存储数据的基本单元,也被称为OSS的文件。和传统的文件系统不同,Object没有文件目录层级结构的关系。

Object类型

Object包含以下三种类型。

重要

不支持在不同类型的Object之间相互转换。例如,Normal类型的Object无法转换为Multipart或者Appendable类型。

类型

定义

说明

Normal

通过简单上传生成的Object类型。

  • 在Bucket未开启版本控制或者处于暂停版本控制状态下,通过PutObject上传同名文件时,后一次完成上传的文件将覆盖前一次上传的文件,且只保留最后调用该接口完成上传的文件。

  • 在Bucket已开启版本控制的状态下,通过PutObject上传同名文件时,OSS会通过versionId标识每一次上传的文件,并将最后调用该接口开始上传的文件标记为最新版本。

Multipart

通过分片上传生成的Object类型。

  • 在Bucket未开启版本控制或者处于暂停版本控制状态下,通过CompleteMultipartUpload合并分片为完整的文件时,后一次完成合并的完整文件将覆盖前一次合并的同名文件,且只保留最后调用该接口完成合并的完整文件。

  • 在Bucket已开启版本控制的状态下,通过CompleteMultipartUpload合并分片为完整的文件时,OSS会通过versionId标识每一次合并分片生成的同名完整文件,并将最后调用该接口完成合并的完整文件标记为最新版本。

Appendable

通过追加上传生成的Object类型。

调用AppendObject完成首次上传后,在已上传Appendable类型Object后面直接追加内容。

Symlink

通过PutSymlink生成的软链接。

通过设置软链接,便捷访问Bucket内的常用Object。

Delete Marker

未指定Object版本ID发起DeleteObject请求生成的删除标记。

对已开启或已暂停版本控制的Bucket中的Object发送DeleteObject请求时,如果在DeleteObject请求中未指定Object的版本ID,则不会删除Object ,而是插入删除标记作为Object的当前版本,便于后续恢复误删除的数据。

Object信息

Object包含以下信息:

  • Key:Object的名称,可用于查询Object。

  • Data:您存储的数据,可由任意长度的字节组成。

  • Version ID:将Object上传至开启版本控制的存储空间(Bucket)后,OSS生成标识该对象的版本ID。

  • Object Meta:Object元数据,是一组键值对,表示了Object的一些属性,例如最后修改时间、大小等信息。您也可以在元数据中存储一些自定义的信息。

相关操作

下表汇总了OSS支持的Object相关操作。

操作

说明

简单上传

简单上传指的是使用OSS API中的PutObject接口上传小于5 GB的单个文件(Object),适用于一次HTTP请求交互即可完成上传的场景。

分片上传

分片上传是指将待上传的文件分成多个碎片(Part)分别上传,上传完成之后再调用CompleteMultipartUpload接口将这些Part组合成一个Object。

断点续传上传

通过断点续传上传的方式将文件上传到OSS前,您可以通过Checkpoint文件指定断点记录点。上传过程中,如果出现网络异常或程序崩溃导致文件上传失败时,将从断点记录处继续上传未上传完成的部分。

上传回调

OSS在完成文件(Object)上传时可以提供回调(Callback)给应用服务器。您只需要在发送给OSS的请求中携带相应的Callback参数,即可实现回调。

客户端直传

客户端直传是指客户端直接上传文件到对象存储OSS。相对于服务端代理上传,客户端直传避免了业务服务器中转文件,提高了上传速度,节省了服务器资源。

表单上传

表单上传是指使用OSS API中的PostObject请求来完成Object的上传,上传的Object不能超过5 GB。

追加上传

追加上传指的是在已上传的Appendable类型Object后面直接追加内容。

RTMP推流上传

OSS支持使用RTMP协议推送H264编码的视频流和AAC编码的音频流到OSS。推送到OSS的音视频数据可以点播播放;在对延迟不敏感的应用场景,也可以做直播用途。

简单下载

简单下载指的是使用OSS API的GetObject接口,下载已上传的Object,适用于一次HTTP请求交互即可完成下载的场景。

断点续传下载

OSS提供了从Object指定的位置开始下载的功能,在下载大的Object的时候,可以分多次下载。如果下载中断,重启时也可以从上次完成的位置开始继续下载。

授权给第三方下载

您可以在不提供资源拥有者所属账号的访问密钥(AccessKey)的情况下,通过临时访问凭证以及签名URL的方式授权第三方下载文件Object。

列举文件

Bucket内的Object默认按照字母序排列。您可以结合实际场景列举当前Bucket的所有Object、指定前缀的Object、指定个数的Object等。

拷贝文件

拷贝文件是指在不改变文件内容的情况下,将同一地域下的源Bucket内的文件复制到目标Bucket。

重命名文件

在同一个Bucket内重命名某个Object。

使用文件URL

Object上传至Bucket后,您可以通过文件URL将文件分享给第三方预览或下载。

搜索文件

当您向Bucket上传了大量的Object时,OSS支持通过指定文件名前缀快速搜索并定位目标文件。

解冻文件

冷归档或者深度冷归档存储类型的Object需要解冻(Restore)之后才能读取。

删除文件

您可以通过多种方式删除Bucket中不再需要保留的Object。

对象标签

OSS支持使用标签对Bucket中的Object进行分类,您可以针对同标签的Object设置生命周期规则、访问权限等。

软链接

软链接功能用于快速访问Bucket内的常用Object。设置软链接后,您可以使用类似于Windows的快捷方式,通过软链接文件快速打开Object。

管理文件元数据

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

单链接限速

客户端访问OSS内的Object时会占用较大带宽,在某些不容易控制流控的客户端上可能会对其他应用造成影响。为避免此类问题,您可以通过OSS提供的单链接限速功能在上传、下载文件等操作中进行流量控制,以保证其他应用的网络带宽。

查询文件

您可以使用SelectObject对目标文件执行SQL语句,返回执行结果。

删除碎片

进行分片上传时,Object会被切成若干个Part,这些Part被称为碎片。当您将这些Part上传到OSS服务端后,可以调用CompleteMultipartUpload将这些Part组合成一个完整的Object。

管理目录

与传统文件系统中的层级结构不同,OSS内部使用扁平结构存储数据。即所有数据均以Object的形式保存在Bucket中。为方便您对Object进行分组并简化权限管理,您可以通过目录的层次来组织Object。

数据索引

数据索引是OSS对外提供的Object元数据索引能力。您可以利用Object的元数据自定义索引的条件,从而快速获取Object列表。数据索引可以帮助您更好地管理与了解数据结构,方便您后续查询、统计和管理Object。