【OSS 排查方案-10 请求 OSS 返回 404】

本文涉及的产品
对象存储 OSS,标准 - 本地冗余存储 20GB 3个月
对象存储 OSS,内容安全 1000 次 1年
对象存储OSS,敏感数据保护2.0 200GB 1年
简介: 什么是 404 404 标准的 http code 状态码,代表用户请求的资源在服务端不存在, 404 并不是一个异常状态码?而是一个正常的响应。换句话说 404 已经成为了一个结果,这种响应常见在 client 端下载 OSS 的资源时出现。

作者:张医博

什么是 404

404 标准的 http code 状态码,代表用户请求的资源在服务端不存在, 404 并不是一个异常状态码?而是一个正常的响应。换句话说 404 已经成为了一个结果,这种响应常见在 client 端下载 OSS 的资源时出现。

做好预防

很多情况如果服务端的历史日志保存时间有限,那么出现问题时也无法查证,所以建议使用 OSS 先把日志功能开启,将 OSS 每天的数据都自动备份到用户指定的目录下,费用低廉。
image.png

why 404

  • 检查 客户端提供的 objectname 是否正确,确保不存在低级的拼写错误。
  • 客户端之前上传是否成功,如果成功 OSS 会返回 requestid,凡事没有 requestID 的并不能保证已经上传到 OSS 成功。
  • 客户端可以根据开启的 log 查询下对应时间点 OSS 出现 404 的情况。
  • OSS 是否开启过 生命周期 功能,开启这个功能,触发生命周期管理规则后,会将满足条件的 URL 完全上除掉。

客户端上传成功,但是下载返回 404

首先这种情况是不存在,如果已经上传到 OSS 的文件,除了会冗余写多份,也受到权限的严格限制,匿名非法的访问是不可能直接删除的,除非使用者自己把 bucket 设置为公共读写(高危权限)
一般对上传成功有个误区,认为返回 200 就代表文件已经上传成功其实这并不准确。会造成两种情况

  • 收到状态码 200 的情况后立刻取请求 OSS ,返回了 404 ,等一会再访问就 200 ,怀疑到 OSS 返回 200 和真实的写入成功不同步。
  • 上传成功收到 200 状态码,但访问一直都是 404
  • 分片上传或者断点续传已经收到了 200 并切有 requestID 的情况下,访问 OSS 仍然返回 404。

其实以上两种情况都是对返回状态的判断不准确导致,可靠的判断方式是,if result.status==200 && result.requestID != None 的情况下才是上传成功。有的 http 请求被 http 劫持的情况下会收到一个伪造的 200 状态码并不是真实的返回。

另外分片上传或者断点续传比叫特殊,是采用将原文件切片的形式上传,每一个分片 multipart 上传成功都会返回 200 和 requestID,这种情况应该以 complete 合并分片后返回的 200 & requestID 为准。

极特殊的情况是客户端使用分片上传时对用的 uploadID 凭证是 A,但是完成合并时用的 uploadID 凭证是 B,OSS 找不到原始的 A 凭证,所以报 404 无法完成上传。
image.png

文件之前一直存在,突然访问 404

有以下几个原因

  • 客户端的子账号有权限,把 OSS 的文件删除了。
  • 具备客户合法的 AK SK 通过 API 删除了。
  • 具备合法账号密码的人在控制台删除了。
  • 拥有者设置过生命周期过期被删除了。
  • bucket 和其他 bucket 有跨区复制的关系,其他的 bucket 执行了删除操作,同步到当前的 bucket,所以文件被删除。
相关实践学习
通义万相文本绘图与人像美化
本解决方案展示了如何利用自研的通义万相AIGC技术在Web服务中实现先进的图像生成。
相关文章
|
5月前
|
Web App开发 监控 安全
OSS客户端签名直传实践:Web端安全上传TB级文件方案(含STS临时授权)
本文深入解析了客户端直传技术,涵盖架构设计、安全机制、性能优化等方面。通过STS临时凭证与分片上传实现高效安全的文件传输,显著降低服务端负载与上传耗时,提升系统稳定性与用户体验。
520 2
|
5月前
|
存储 Prometheus 监控
OSS监控体系搭建:Prometheus+Grafana实时监控流量、错误码、存储量(开源方案替代云监控自定义视图)
本方案基于Prometheus构建OSS监控系统,涵盖架构设计、指标采集、可视化、告警及性能优化,助力企业实现高可用、低成本的自建监控体系。
531 1
|
5月前
|
存储 运维 分布式计算
OSS迁移实战:从自建MinIO到阿里云OSS的完整数据迁移方案
本文介绍了从自建MinIO迁移至阿里云OSS的完整方案,涵盖成本优化、稳定性提升与生态集成需求。通过双写代理、增量同步、分层校验等技术,解决数据一致性、权限迁移、海量小文件处理等挑战,实现业务零中断与数据强一致性,最终达成79%的TCO降低和显著性能提升。
1262 0
|
8月前
|
关系型数据库 数据库 对象存储
Dify实践|Dify on DMS+对象存储OSS,实现多副本部署方案
本文介绍了在DMS上部署Dify的详细步骤,用户可选择一键购买资源或基于现有资源部署Dify,需配置RDS PostgreSQL、Redis、AnalyticDB for PostgreSQL等实例,并设置存储路径和资源规格。文中还提供了具体配置参数说明及操作截图,帮助用户顺利完成部署。
|
10月前
|
存储 弹性计算 数据管理
阿里云对象存储OSS收费标准,存储、流量和请求等多个计费项
阿里云对象存储OSS收费标准涵盖存储、流量及请求费用,提供按量付费和包年包月两种模式。标准型OSS按量付费为0.09元/GB/月,包年包月40GB仅9元/年,500GB优惠价118元/年。流量费仅收取公网流出方向,内网流入流出免费。
710 13
|
11月前
|
存储 应用服务中间件 开发工具
对象存储OSS-Python设置代理访问请求
通过 Python SDK 配置 nginx 代理地址请求阿里云 OSS 存储桶服务。示例代码展示了如何使用 RAM 账号进行身份验证,并通过代理下载指定对象到本地文件。
466 15
|
11月前
|
存储 弹性计算 数据管理
阿里云对象存储OSS收费标准:存储、流量和请求等多个计费项详解
阿里云对象存储OSS提供多样化的计费模式,涵盖存储、流量、请求等多项费用。存储费用方面,按量付费标准型为0.09元/GB/月,包年包月则有9元40GB等多种选择。流量费用仅对公网出方向收费,价格区间从0.25至0.50元/GB不等,支持按量付费与流量包抵扣两种方式。更多详情及精准报价,欢迎访问阿里云OSS官方页面。
6915 1
|
10月前
|
存储 人工智能 数据管理
云端问道17期方案教学-AI场景下的对象存储OSS数据管理实践
本文介绍了AI场景下的对象存储OSS数据管理实践,由阿里云技术专家明锦分享。主要内容分为两部分:1) AI场景下对象存储实践方案,包括对象存储的应用、优势及在模型推理中的优化;2) OSS常用工具介绍,如OSSFS、Python SDK、Go SDK等,并详细说明了这些工具的特点和使用场景。文中还探讨了不同模式下的性能优化,以及即将推出的OS Connector for AI/ML工具,旨在提升数据下载速度和IO性能。
224 0
|
存储 弹性计算 数据管理
阿里云对象存储OSS收费标准,存储、流量和请求等多个计费项
阿里云对象存储OSS提供按量付费与包年包月两种计费方式,涵盖存储、流量、请求等费用。标准存储按量付费0.09元/GB/月,包年包月40GB起售,价格9元/年。公网流量出方向收费,内网及上传免费。具体费用视使用情况而定,详情见官网。
1078 0
|
安全 网络安全 开发工具
对象存储oss使用问题之flutter使用http库进行post请求文件上传返回400如何解决
《对象存储OSS操作报错合集》精选了用户在使用阿里云对象存储服务(OSS)过程中出现的各种常见及疑难报错情况,包括但不限于权限问题、上传下载异常、Bucket配置错误、网络连接问题、跨域资源共享(CORS)设定错误、数据一致性问题以及API调用失败等场景。为用户降低故障排查时间,确保OSS服务的稳定运行与高效利用。
801 1