OSS文件上传和下载失败的排查方法

本文介绍OSS上传和下载失败的排查方法。

OSS文件上传失败

当上传文件失败时,请参见以下操作进行排查处理:

  1. 检查本地与OSS的网络是否存在异常。若存在网络故障,请使用ping命令测试与OSS的网络连通性,确保网络正常后再进行下一步排查。

  2. 检查上传文件的大小是否超过限制。

    • 通过OSS控制台上传、简单上传、表单上传、追加上传的方式上传单个文件,文件的大小不能超过5 GB。如要上传超过5 GB的文件,请参见如何上传大文件到OSS

    • 通过分片上传的方式上传单个文件,文件的大小不能超过48.8 TB。

  3. 检查当前上传文件的账号是否有上传文件的权限。若为RAM用户,请执行以下操作,检查账号是否拥有Bucket上传文件的权限。若无权限,进行授权。更多信息,请参见通过Bucket Policy授权用户访问指定资源

    1. 登录访问控制管理控制台,选择身份管理>用户,选择对应的RAM用户。

    2. 单击权限管理页签,确认是否已经赋予当前用户BucketObject的操作权限。

  4. 请根据当前上传文件的环境,检查配置是否正常。

    • 若您是使用OSS SDK上传失败,请检查Endpoint地址、Bucket、Object、AccessKeyIDAccessKeySecret是否正常。

      1. 检查OSS BucketEndpoint地址是否正确。

        • 请确保使用正确的Endpoint地址访问Bucket。例如Bucket所在地域为oss-cn-hangzhou,则外网Endpointoss-cn-hangzhou.aliyuncs.com。有关Endpoint的更多信息,请参见OSS访问域名使用规则

        • 确认请求的Endpoint地址与Bucket实际的Endpoint地址一致。如果需要访问青岛和杭州两个节点的Bucket,则创建多个ossclient,定义Endpoint时,将青岛和杭州地域的地址都添加进去。各地域及不同网络连接方式下的Endpoint信息请参见OSS内网域名与VIP网段对照表

      2. 检查AccessKeyIDAccessKeySecret的正确性。 确保代码中使用的AccessKeyAccessKeySecret正确。

      3. 请确保BucketObject命名合法有效且符合要求。更多信息,请参见BucketObject命名规范

        • Bucket的命名规范:只能包括小写字母、数字和短划线(-),必须以小写字母或者数字开头,长度必须在3~63字节之间。

        • Object的命名规范:使用UTF-8编码,长度必须在1~1023字节之间,不能以/或者\字符开头。

    • 若您是使用OSS常用工具上传失败,首先请参见OSS常用工具汇总,查看您所使用的工具的限制条件,根据您的使用场景,重新选择使用工具,帮助您解决OSS上传慢或者偶尔不能上传的情况。建议您使用ossutil工具进行上传,具体请参见命令行工具ossutil

  5. 在进行文件上传时如遇到以下对应问题,请按照对应的解决方案进行处理。

OSS文件下载失败

当下载文件失败时,请参见以下操作进行排查处理:

  1. 检查本地与OSS的网络是否存在异常。若存在网络故障,请解决网络故障,确保网络正常后再进行下一步排查。

  2. 检查下载文件的数量是否超过限制。通过OSS控制台可一次批量下载最多100个文件。

  3. 请参见OSS上传文件失败中的步骤3和步骤4,排查配置是否正确。

  4. 使用以下OSS工具通过断点续传方式下载:

  5. 在使用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的音视频数据可以点播播放。在对延迟不敏感的应用场景,也可以做直播用途。

相关文档