概述
本文主要介绍阿里云对象存储OSS文件上传和下载失败的排查方法。
详细信息
当您访问OSS出错时,OSS会返回3xx、4xx或者5xx的HTTP状态码,您可以通过状态码进行排查处理。在使用OSS SDK上传或下载文件时,如发生报错,请参见OSS SDK使用中常见问题。
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的更多信息,请参见OSS访问域名使用规则。确认请求的Endpoint地址与Bucket实际的Endpoint地址一致。如果需要访问青岛和杭州两个节点的Bucket,则创建多个ossclient,定义Endpoint时,将青岛和杭州地域的地址都添加进去。各地域及不同网络连接方式下的Endpoint信息请参见OSS内网域名与VIP网段对照表。
检查AccessKeyID和AccessKeySecret的正确性。 确保代码中使用的AccessKey和AccessKeySecret正确。
请确保Bucket与Object命名合法有效且符合要求。更多信息,请参见Bucket和Object命名规范。
Bucket的命名规范:只能包括小写字母、数字和短划线(-),必须以小写字母或者数字开头,长度必须在3~63字节之间。
Object的命名规范:使用UTF-8编码,长度必须在1~1023字节之间,不能以
/
或者\
字符开头。
若您是使用OSS常用工具上传失败,首先请参见OSS常用工具汇总,查看您所使用的工具的限制条件,根据您的使用场景,重新选择使用工具,帮助您解决OSS上传慢或者偶尔不能上传的情况。建议您使用ossutil工具进行上传,具体请参见命令行工具ossutil。
在进行文件上传时如遇到以下对应问题,请按照对应的解决方案进行处理。
上传资源至OSS时报“Connect to oss failed: [Errno -2] Name or service not known”的报错
上传或下载OSS文件时提示“OSS Transfer Acceleration is not configured on this bucket”错误
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而不是通过服务器端转发,节省了自建服务器的成本,并且充分利用了OSS的海量数据处理能力,无需考虑带宽和并发限制等,可以让客户专心于业务处理。
RTMP推流上传:OSS支持使用RTMP协议推送H264编码的视频流和AAC编码的音频流到OSS,推送到OSS的音视频数据可以点播播放。在对延迟不敏感的应用场景,也可以做直播用途。
相关文档
适用于
对象存储OSS
- 本页导读 (1)