OSS 上传出现异常

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
云解析 DNS,旗舰版 1个月
简介: OSSBrower "no space left on" 分析: 有明显报错信息的先 Google 一下,看看是操作系统错误还是 OSSBrower 抛出,经过鉴定错误是 Linux 系统底层返回,说明当时系统的 OSSBrower 所在的目录磁盘满了,开源的错误到处可以看到,自行解决即可。

案例一:

OSSBrower "no space left on"

1

分析:

有明显报错信息的先 Google 一下,看看是操作系统错误还是 OSSBrower 抛出,经过鉴定错误是 Linux 系统底层返回,说明当时系统的 OSSBrower 所在的目录磁盘满了,开源的错误到处可以看到,自行解决即可。

案例二:

分片上传成功,下载 404

分析:

如果分片上传成功,肯定不会出现访问 404 的情况,检查下

  • 上传成功后 OSS 有没有返回 requestID ,如果没有返回证明是没有上传成功的。
  • 客户端的代码是否判断分片上传成功就去下载文件是有问题的,分片上传成功不代表文件都上传完成。
  • 分片上传应该在 complete 合并分片之前进行判断 httpstatu==200 & requestID != None 才是真正的上传成功。
  • 如果文件已经合并完成,并且返回 requestID,但还是下载 404 ,需要升级阿里云进行处理。

案例三:

IO error

背景:
客户端上传 OSS 过程中出现 “uploadFile:fail Write error: ssl=0x76d62a40: I/O error during system call, Software caused connection abort ”

分析:

这个是标准的 android 系统的报错,不是 oss 的问题,有很多开源的错误都有描述,建议参考下
参考1
参考2

案例四:

背景:Could not resolve host

2018/10/24 14:03:47 hlg_matting_PreF (pid=15693)(error): parseUrl2Image.hpp(186), read_element: image_url_service connect fail: Could not resolve host: da.oss-cn-hangzhou-internal.aliyuncs.com, url: https://da.oss-cn-hangzhou-internal.aliyuncs.com/mattings/0/images/20181024-135354-f5ee.jpg

上传 OSS 文件解析失败,DNS 无法解析于域名,此问题需要排查下 DNS 是否工作正常,或者主机上的 DNS 服务是否正常。

案例五:

背景:python SDK 分片上传失败

用户通过 python SDK 的分片上传函数上传到 OSS 失败,碎片管理中出现很对碎片。

1

  • 先确认是直接传到 OSS,还是通过其他 proxy 传输到 OSS (类似 CDN),如果经过 CDN 再上传到 OSS 需要在 OSS 上配置跨域的头,Access-Control-Allow-Origin 、Access-Control-Allow-Mehtod 、Access-Control-Allow-header,并且将 Etag 暴露出去。
  • 客户端上传失败是因为网络超时,还是捕获到异常上传失败,需要详细看下捕获到的 SDK 异常信息分析,如果是网络超时导致上传失败,建议使用断点续传来替代普通上传。断点续传支持分片,并发,已经弱网的兼容。
  • 清理掉上传失败的碎片文件重新上传。
  • 当以上操作都解决不了你的问题时,需要提供以下信息升级阿里云便于快速定位:

    • 提供 SDK 异常时返回的 requestID,这个属性是 response header 中携带的记录了完整的 OSS 请求过程。
    • 客户端部署 tcpdump ,然后重新运行代码上传,保存抓包。
      tcpdump -i <网卡出口名称> -s0 host <访问oss的域名> -w faild.pcap

案例六:

C# SDK 分片上传报错

错误    2019/2/13 10:24:28    ServerApi    0    无    "Failed to stop service. System.InvalidOperationException: An unhandled exception was detected ---> System.IO.IOException: Unable to read data from the transport connection: The connection was closed.
   at Aliyun.OSS.Util.AsyncResult.WaitForCompletion()
   at Aliyun.OSS.Common.Communication.RetryableServiceClient.EndSend(IAsyncResult ar)
   at Aliyun.OSS.Util.OssUtils.EndOperationHelper[TResult](IServiceClient serviceClient, IAsyncResult asyncResult)
   at SAAS.Common.Aliyun.MultipartUploadSample.UploadPartCallback(IAsyncResult ar)
   at Aliyun.OSS.Common.Communication.ServiceClientImpl.<>c__DisplayClass5.<BeginSetRequestContent>b__4(IAsyncResult ar)
   at System.Net.LazyAsyncResult.Complete(IntPtr userToken)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threadin..."

### 排查

  • 出现类似报错是因为客户设置的分片过小导致,先问题出用的是分片上传 还是断点续传;
  • 如果是分片上传,根据文件总大小合理的提升分片 size ,比如客户原来设置的是 50M,现在可以提升到 100M 测试;
  • 另外请使用断点续传重新替换下分片上传,此案例在分析过程中通过客户端的抓包发现大量的丢包重传,这种情况下是普通的分片可能直接报错,不会再进行重传了。
    image

案例七:

OSS 上传后,但显示长度为 0

排查

1) 首先排查下客户端上传是用什么方式 (SDK、API、工具)不同的方法可能使用也是不同的。确认好使用 SDK 我们使用客户端的原文件进行上传测试,看问题是否可以复现。

  • 可以复现,说明我们自己可以进行排查无需用户配合;
  • 我们自己复现不了说明问题是客户个案,肯定不是 工具或者产品的问题;

2) 获取当前问题发生的 OSS requestID

  • 如果是工具,可以通过增加 log 的方式来获取,比如 ossutil 有时候会在控制台显示,也可以通过当前目录下的隐藏的操作日志来确认;
  • 如果是 SDK ,客户可以通过代码返回的结果对象中获取到这个属性,比如 java SDK

3)当获取到 requestID 查询到日志后,先看下用户上传的结果是 200 还是异常的,如果是 200 说明上传成功;
其次看下用户写入的长度是多大?如果客户写入的就是 0 字节,那么和 MD5 没有任何关系,OSS 除了分片、断点续传方法对第一片的大小有限制(100KB)外,其余的普通上传方法均没有对文件最小值做限制,也就是用户可以上传一个空文件。

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
目录
相关文章
|
存储 对象存储
oss区分存储怎么把图片压缩后再上传?
oss区分存储怎么把图片压缩后再上传?
984 0
|
1月前
|
存储 网络安全 对象存储
缺乏中间证书导致通过HTTPS协议访问OSS异常
【10月更文挑战第4天】缺乏中间证书导致通过HTTPS协议访问OSS异常
83 4
|
6月前
|
存储 弹性计算 安全
对象存储OSS产品常见问题之ZIP包解压缩失败异常如何解决
对象存储OSS是基于互联网的数据存储服务模式,让用户可以安全、可靠地存储大量非结构化数据,如图片、音频、视频、文档等任意类型文件,并通过简单的基于HTTP/HTTPS协议的RESTful API接口进行访问和管理。本帖梳理了用户在实际使用中可能遇到的各种常见问题,涵盖了基础操作、性能优化、安全设置、费用管理、数据备份与恢复、跨区域同步、API接口调用等多个方面。
255 0
|
6月前
|
存储 安全 API
对象存储OSS产品常见问题之批量删除异常如何解决
对象存储OSS是基于互联网的数据存储服务模式,让用户可以安全、可靠地存储大量非结构化数据,如图片、音频、视频、文档等任意类型文件,并通过简单的基于HTTP/HTTPS协议的RESTful API接口进行访问和管理。本帖梳理了用户在实际使用中可能遇到的各种常见问题,涵盖了基础操作、性能优化、安全设置、费用管理、数据备份与恢复、跨区域同步、API接口调用等多个方面。
144 0
|
6月前
|
安全 Java 网络安全
对象存储oss使用问题之使用oss上服务器后显示服务异常如何解决
《对象存储OSS操作报错合集》精选了用户在使用阿里云对象存储服务(OSS)过程中出现的各种常见及疑难报错情况,包括但不限于权限问题、上传下载异常、Bucket配置错误、网络连接问题、跨域资源共享(CORS)设定错误、数据一致性问题以及API调用失败等场景。为用户降低故障排查时间,确保OSS服务的稳定运行与高效利用。
840 0
|
6月前
|
存储 定位技术 对象存储
阿里云对象存储OSS外网流出流量异常增多导致费用上升的解决方法
阿里云对象存储OSS外网流出流量异常增多导致费用上升的解决方法
456 2
阿里云对象存储OSS外网流出流量异常增多导致费用上升的解决方法
|
对象存储
oss 追加上传支持excel文件使用吗
oss 追加上传支持excel文件使用吗
|
对象存储 iOS开发
iOS开发:日志记录文件及压缩上传OSS
发现APP上传本地日志文件相当的好用,根据之前研究学习的对这一模块做了一些更具体的优化处理。从标题可以看出,实现这一功能分以下几个步骤: 1、日志记录本地文件 2、日志文件压缩[xx.zip] 3、压缩之后的文件上传 4、压缩文件删除
560 0
|
域名解析 存储 缓存
基于OSS作为存储实现加速访问和加速上传的方案实现
本文通过实现OSS加速的两种方式CDN加速OSS和OSS传输加速来介绍OSS的加速的配置实现方式
7860 0
基于OSS作为存储实现加速访问和加速上传的方案实现
|
存储 监控 安全
OSS异常流量排查及防护
OSS适用于存储各种类型的静态资源。您在OSS中存储静态资源。当OSS生成流量大的异常流量时,可能是恶意引用黑客攻击或请求访问OSS资源的恶意IP引起的。针对上述情况,本文将向您展示如何定位异常流量以及如何保护流量。
1668 0
OSS异常流量排查及防护

热门文章

最新文章