对象/文件(Object)
对象(Object)是OSS存储数据的基本单元,也被称为OSS的文件。和传统的文件系统不同,Object没有文件目录层级结构的关系。
Object类型
Object包含以下三种类型。
不支持在不同类型的Object之间相互转换。例如,Normal类型的Object无法转换为Multipart或者Appendable类型。
类型 | 定义 | 说明 |
Normal | 通过简单上传生成的Object类型。 |
|
Multipart | 通过分片上传生成的Object类型。 |
|
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的一些属性,例如最后修改时间、大小等信息。您也可以在元数据中存储一些自定义的信息。
功能支持对比
✓”表示支持对应操作,“×”表示不支持对应操作。
操作 | 说明 | 有地域属性Bucket | 无地域属性Bucket |
简单上传指的是使用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后面直接追加内容。 | ✓ | ✓ | |
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。 | ✓ | ✓ | |
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。 | ✓ | × |