对象管理
对象管理
1. 对象概述
在对象存储中,每个文件对象都由对象键(Key)、数据值(Value)、和对象元数据(Metadata)组成。
- 对象键(Key):对象在Bucket中的唯一标识。
- 数据值(Value):上传的对象大小。在控制台中上传对象最大支持 20MB;API普通上传最大支持5TB,用户可根据对象大小选择不同上传方式,将本地任意类型的文件上传至Bucket中。
- 对象元数据(Metadata):文件的属性描述,可以在上传对象时对其进行设置。您上传对象后,如需修改对象元数据,您只能创建对象副本并设置元数据。
1.1. 对象键(Key)
Key键值,即对象的名称,为经过UTF-8编码的长度大于0且不超过255的字符序列。一个桶里的每个对象必须拥有唯一的对象键值。
命名规则:
不允许输入以下特殊字符:* # $ % & < > { } [ ] ' " | @ = : + , ? ^
通常,我们将对象等同于文件来进行管理,但是由于OS2是一种对象存储服务,并没有文件系统中的文件和文件夹概念。为了使用户更方便进行管理数据,OS2提供了一种方式模拟文件夹。通过在对象的名称中增加“/”,例如“test/123.jpg”。此时,“test”就被模拟成了一个文件夹,“123.jpg”则模拟成“test”文件夹下的文件名了,而实际上,对象名称(Key)仍然是“test/123.jpg”。
1.2. 对象元数据(Metadata)
对象元数据是对上传到Bucket的文件的属性描述,分为两种:HTTP标准属性(HTTP Headers)和 用户自定义元数据(User Meta)。
HTTP标准头支持
HTTP标准头 | 说明 |
---|---|
Cache-Control | 文件的缓存机制 |
Content-Type | 文件类型 |
Content-Disposition | 下载时的名称展示 |
Expires | 用来控制缓存的失效日期 |
Content-Encoding | 文件的编码格式 |
Content-Language | 文件内容的语言编码 |
1.3. User Meta自定义元数据
自定义元数据是对象的可自定义参数,以x-oss-
作为前缀,如x-oss-data
、x-oss-acl
。
1.4. 元数据定义规则
- 使用小写存储用户定义的元数据。使用 REST 和 UTF-8 时或通过 POST 基于浏览器的上传时,每个名称、值对都必须符合 US-ASCII。
- PUT 请求头中,用户定义的元数据的大小限制为 2 KB。用户定义的元数据是一组键值对,通过计算每个键和值的 UTF-8 编码中的字节总数来测量用户定义的元数据的大小。
注意:自定义源数据不支持设为“x-oss-security-token”、“x-oss-delete-bucket”、“x-oss-id-2”、“x-oss-version-id”
。
2. 上传文件
上传文件操作是指在指定的Bucket内增加一个对象,执行该操作需要用户拥有Bucket的写权限。
同一个Bucket中存储的文件,对象键必须是唯一的。如果上传了相同名称的文件,则新上传的文件将进行覆盖原有文件。
用户可选择以下方式完成文件上传:
2.1. 普通上传
普通上传指的是用户使用对象存储 API中的Put Object方法上传单个Object,可以适用在任何一次HTTP请求交互即可完成上传的场景,比如小文件的上传。
注意事项:
- 文件大小:不能超过20M。
- 文件名称必须遵循对象键命名规则。
- 普通上传使用的是单次HTTP请求,Object过大会导致上传时间长。请在上传时间内保持网络通畅以免超时或断开连接导致上传失败。可以考虑断点续传上传(分片上传)。当文件大于20M时,这种情况下只能使用断点续传上传(分片上传),具体参考断点续传上传。
功能使用
2.2. 分片上传
断点续传适合于在弱网络或高带宽环境下上传较大的对象。您可以自行切分对象并分别调用 API 上传各个分片。
功能使用
- API使用,参阅API说明文档Object接口 -Initiate Multi-part Upload -Upload Part -Upload Part – Copy -List Multipart Upload Parts -Complete Multipart Upload -Abort Multipart Upload
3. 下载文件
拥有对象读权限的用户可以执行下载操作,返回信息会包含对象内容和对象的元数据信息。
功能使用
4. 解冻文件
访问/下载归档存储类型文件需先进行解冻。
归档类型的Object在执行解冻前后的状态变换过程如下:
归档类型的Object初始时处于冻结状态。
提交一次解冻请求后,Object处于解冻中的状态。
服务端完成解冻任务后,Object进入解冻状态,此时您可以读取Object。解冻时可以指定解冻状态持续时间(1~7天),默认为1天。
解冻状态结束后,Object再次返回到冻结状态。
功能使用
5. 删除文件
您可以通过以下方法删除上传在Bucket中的文件(Object):
- 单个删除:指定某个对象进行删除。
- 批量删除:一次指定不超过1000个文件进行删除。
功能使用