本文介绍OSS上传和下载失败的排查方法。
OSS文件上传失败
当上传文件失败时,请参见以下操作进行排查处理:
-
检查本地与OSS的网络是否存在异常。若存在网络故障,请使用ping命令测试与OSS的网络连通性,确保网络正常后再进行下一步排查。
-
检查上传文件的大小是否超过限制。
-
通过OSS控制台上传、简单上传、表单上传、追加上传的方式上传单个文件,文件的大小不能超过5 GB。如要上传超过5 GB的文件,请参见如何上传大文件到OSS。
-
通过分片上传的方式上传单个文件,文件的大小不能超过48.8 TB。
-
-
检查当前上传文件的账号是否有上传文件的权限。若为RAM用户,请执行以下操作,检查账号是否拥有Bucket上传文件的权限。若无权限,进行授权。更多信息,请参见通过Bucket Policy授权用户访问指定资源。
-
登录访问控制管理控制台,选择身份管理>用户,选择对应的RAM用户。
-
单击权限管理页签,确认是否已经赋予当前用户Bucket或Object的操作权限。
-
-
请根据当前上传文件的环境,检查配置是否正常。
-
若您是使用OSS SDK上传失败,请检查Endpoint地址、Bucket、Object、AccessKeyID和AccessKeySecret是否正常。
-
检查OSS Bucket的Endpoint地址是否正确。
-
请确保使用正确的Endpoint地址访问Bucket。例如Bucket所在地域为
oss-cn-hangzhou,则外网Endpoint为oss-cn-hangzhou.aliyuncs.com。有关Endpoint的更多信息,请参见通过IPv6协议访问OSS。 -
确认请求的Endpoint地址与Bucket实际的Endpoint地址一致。如果需要访问青岛和杭州两个节点的Bucket,则创建多个ossclient,定义Endpoint时,将青岛和杭州地域的地址都添加进去。各地域及不同网络连接方式下的Endpoint信息请参见通过Endpoint和Bucket域名访问OSS。
-
-
检查AccessKeyID和AccessKeySecret的正确性。 确保代码中使用的AccessKey和AccessKeySecret正确。
-
请确保Bucket与Object命名合法有效且符合要求。更多信息,请参见Bucket和Object命名规范。
-
Bucket的命名规范:只能包括小写字母、数字和短划线(-),必须以小写字母或者数字开头,长度必须在3~63字节之间。
-
Object的命名规范:使用UTF-8编码,长度必须在1~1023字节之间,不能以
/或者\字符开头。
-
-
-
若您是使用OSS常用工具上传失败,首先请参见OSS常用工具汇总,查看您所使用的工具的限制条件,根据您的使用场景,重新选择使用工具,帮助您解决OSS上传慢或者偶尔不能上传的情况。建议您使用ossutil工具进行上传,具体请参见命令行工具ossutil。
-
-
批量上传大量文件时,检查是否触发QPS或带宽限制。OSS的默认QPS限制为10000次/秒,带宽限制为10 Gbit/s(中国内地各地域)或5 Gbit/s(其他地域)。超出限制的请求会被拒绝或被流控。请登录OSS管理控制台,进入目标Bucket的用量查询 > 基础数据页面,查看使用带宽和请求次数指标是否接近或超过限制阈值。如确认超限,建议控制并发数量、使用分批上传策略,详细排查方法请参见OSS中Bucket出现带宽或QPS超限的排查方法。
-
在进行文件上传时如遇到以下对应问题,请按照对应的解决方案进行处理。
OSS文件下载失败
当下载文件失败时,请参见以下操作进行排查处理:
-
检查本地与OSS的网络是否存在异常。若存在网络故障,请解决网络故障,确保网络正常后再进行下一步排查。
-
检查下载文件的数量是否超过限制。通过OSS控制台可一次批量下载最多100个文件。
-
请参见OSS上传文件失败中的步骤3和步骤4,排查配置是否正确。
-
使用以下OSS工具通过断点续传方式下载:
-
在使用OSS文件下载相关功能时,如果遇到以下问题,可参考其对应的案例进行解决。
更多信息
OSS SDK上传文件主要包括以下几种上传方式,请根据不同上传方式的特性,选择合理的上传方式进行重新配置。
-
简单上传:适用于一次HTTP请求交互即可完成上传的场景,例如小文件(小于5 GB)的上传。
-
表单上传:是指使用OSS API中的PostObject请求来完成Object的上传,上传的Object不能超过5 GB。
-
分片上传和断点续传:当使用简单上传(PutObject)功能来上传较大的文件到OSS的时候,如果上传的过程中出现了网络错误,那么此次上传失败,重试必须从文件起始位置上传。针对这种情况,您可以使用分片上传来达到断点续传的效果。相对于其他的上传方式,分片上传适用于以下场景:
-
恶劣的网络环境:如手机端,当出现上传失败的时候,可以对失败的Part进行独立的重试,而不需要重新上传其他的Part。
-
断点续传:中途暂停之后,可以从上次上传完成的Part的位置继续上传。
-
加速上传:要上传到OSS的本地文件很大的时候,可以并行上传多个Part以加快上传。
-
流式上传:可以在需要上传的文件大小还不确定的情况下开始上传。这种场景在视频监控等行业应用中比较常见。
-
-
追加上传:追加上传指的是使用OSS API中的AppendObject在已上传的Appendable Object类型文件后面直接追加内容。
-
客户端直传:客户端直传是指客户端直接上传文件到对象存储OSS。相对于服务端代理上传,客户端直传避免了业务服务器中转文件,提高了上传速度,节省了服务器资源。
-
RTMP推流上传:OSS支持使用RTMP协议推送H264编码的视频流和AAC编码的音频流到OSS,推送到OSS的音视频数据可以点播播放。在对延迟不敏感的应用场景,也可以做直播用途。