使用场景
用户可以上传对象至已有的存储桶中。上传方式区分普通上传、分片上传与追加写。
上传方式
上传方式 | 说明 |
---|---|
普通上传 | 当上传文件小于5GB时使用,支持putObject和postObject,两种上传方式的区别请参见PUT上传和POST上传有什么区别。 |
分片上传 | 当上传文件大于5GB且小于50000GB时使用。 |
追加写 | 追加写可以对桶中的一个对象进行追加写操作,如果该对象已经存在,执行该操作则向文件末尾追加内容,否则将创建对象。 |
约束与限制
- 媒体存储管理控制台支持批量上传文件,单次最多支持100个文件上传,单个文件大小最大支持5GB。
- 通过SDK或API的PUT上传或者POST上传,可以上传小于5GB的文件,推荐上传小于2GB的文件。
- 通过SDK或API的分片上传,可以上传小于50000GB(约48.8TB)的文件。
- XstorBrowser支持直接上传文件夹。
- 在未开启多版本控制功能的情况下,如果新上传的文件和桶内文件重名,则新上传的文件会自动覆盖旧文件。
- 在未开启多版本控制功能的情况下,对象删除后不可恢复。
对象命名规范
- 使用UTF-8编码。
- 命名长度范围为1~1023字节。
- 推荐可用于文件名字符集为[0-9a-zA-Z]、感叹号"!"、左括号"("、右括号")"、连字符"-"、下划线"_"、星号"*"、单引号"'"、句号"."。
- 如果上传的对象名带有中文,在访问或请求这个对象时中文部分将会按照URL Encode规则把中文转换为百分号编码。
普通上传
媒体存储支持普通上传的方式。可以上传小于5GB的文件,推荐上传小于2GB的文件。
使用方式
操作途径 | 使用方式 |
---|---|
SDK | 媒体存储支持多种语言SDK,请从SDK概览页面选择进入对应的开发指南查阅。 |
原生接口 | 可参考:上传对象。 |
OpenAPI | 可参考:上传对象,目前OpenAPI仅支持西藏资源池调用,如其他区域需通过API访问调用,请联系媒体存储技术团队。 |
分片上传
通过分片上传,用户可以最大程度提高上传效率同时避免任务失败。分片上传允许将单个对象按照一定的大小分割成多个数据分片,作为一组分片分别上传。
用户可以独立上传或者按任意顺序上传对象的分片。如果其中某个分片传输失败,可以重新传输该分片且不会影响其他分片。
当对象的所有分片都上传后,媒体存储会将这些分片合并起来,然后创建该对象。
适用场景
- 大文件加速上传,对于大小超过5GB的对象推荐使用分片上传以加快上传速度
- 网络不稳定或较差时,推荐使用分片上传,当出现上传失败的时候,用户仅需重传失败的分片。
分片上传流程
- 初始化分片上传任务:开始分片上传时,媒体存储将首先初始化分片上传任务并返回分片上传的唯一标识符uploadId。无论您何时上传分片、合并分片或取消分片上传任务,都必须包括此上传uploadId。
- 上传每个分片:上传分片时,每一个分片的顺序是通过上传过程中指定的partNumber来确定,所以除了指定uploadId,还必须指定分片编号partNumber,partNumber的数量在初始化时自动决定。用户可以并发上传这些碎片,可结合本地网络状况和设备能力综合考虑并发个数。
- 合并分片:合并分片时,媒体存储通过按升序的分片编号规范化分片来创建对象。成功完成请求后,分片将不再存在。用户可以选择取消分片上传任务,之后无法再次使用该上传ID上传任何分片,同时已上传的部分将形成文件碎片并占用存储空间。如果任何分片上传已在进行中,即使用户已执行中止操作,它们仍可以上传成功或失败。
注意事项
- 分片上传过程被中断后,如果不再需要这些分片,请通过控制台桶详情中的未完成上传页清空碎片按钮,手动删除无用的分片,以免产生额外存储费用。可参考:碎片管理。
- 暂停和恢复对象上传:用户可以在任务过期时间内随时上传对象分片,控制台默认过期时间为1天。
- 合并分片阶段,若未对所有分片进行合并,那么未被合并的分片将被自动删除且无法恢复。因此在合并分片之前请仔细核对所有分片,确保没有遗漏的分片。
- 在未开通版本控制的存储桶中,上传同名对象会覆盖媒体存储中已有对象。
约束与限制
项目 | 限制 |
---|---|
对象大小 | 最大支持50000GB(约48.8TB) |
每次上传分片的数量 | 最多支持10000个 |
分片编号 | 1到10000(含) |
分片大小 | 最大5GB,最后一个分片大小是0到5GB |
列举已上传的分片请求,返回的分片数量 | 最多支持1000个 |
列举已初始化分片任务请求,返回的任务数量 | 最多支持1000个 |
使用方式
支持的使用方式 | 参考文档 |
---|---|
控制台 | 通过控制台进行上传操作,控制台默认会对超过5MB的对象进行分片上传操作。操作方式可参考:上传对象。 |
SDK | 媒体存储支持多种语言SDK,请从SDK概览页面选择进入对应的开发指南查阅。 |
原生接口 | 可参考:分片上传。 |
OpenAPI | 可参考:分片上传。目前OpenAPI仅支持西藏资源池调用,如其他区域需通过API访问调用,请联系媒体存储技术团队。 |
XstorBrowser | 使用 XstorBrowser 会将该对象自动切分为多个小对象进行上传。 |
追加写
追加写可以对桶中的一个对象进行追加写操作,如果该对象已经存在,执行该操作则向文件末尾追加内容,否则将创建对象。
使用方式
操作途径 | 使用方式 |
---|---|
SDK | 媒体存储支持多种语言SDK,请从SDK概览页面选择进入对应的开发指南查阅。 |
原生接口 | 可参考:追加写上传。 |
OpenAPI | 可参考:追加写上传,目前OpenAPI仅支持西藏资源池调用,如其他区域需通过API访问调用,请联系媒体存储技术团队。 |
上传对象失败的原因和解决方法
当碰到上传对象失败时常见失败原因如下,您可对照逐一进行排查:
- 通过API或SDK上传对象时有5GB大小的限制,超过5GB的文件可以使用XstorBrowser或登录媒体存储控制台上传。也可以使用API或SDK的分片上传接口上传。
- 检查容量是否已超出已购买的容量包额度或账号是否已欠费。
- 按包计费:
- 登录媒体存储控制台。
- 在控制台左侧点击【订购管理】查看资源包状态。
- 点击对象资源包【查看详情】查看订购的资源包额度。
- 按需计费:在控制台顶部导航栏单击【费用】进入费用中心。在【总览页】查看可用额度。
- 按包计费:
- 结合访问权限来检查该账号是否具有该桶的上传对象权限。
- 若以上并不能解决您的问题,请联系客户经理进一步解决。