OSS 咨询

简介: CDN + OSS 模式,OSS 地址被暴露后如何处理 用户可以将 OSS 设置为私有,在阿里云 CDN 上设置私有回原,然后在 CDN 上针对不想让人访问的 OSS 资源 prefix 做正则匹配,拒绝请求。或者在 CDN 上设置鉴权,拒绝没有授权的访问。

作者:张医博

浅谈

本章介绍一些基本的 oss 的咨询内容,问题是一直在补充的,不定期的进行更新;

问:cdn 结合 oss,oss 地址被暴露后如何处理

答:

  • 暴露后无法组织别人访问你,先将 bucket private 设置为私有禁止读写。
  • 在阿里 cdn 上开启私有回源 oss 功能,让所有请求只能通过 cdn 回源。
  • cdn 上开启鉴权,所有访问必须携带授权的合法秘钥。

问:跨国访问超过 1s 优化建议?

答:

  • 在国外北美或者亚太 region 新建一个海外的 bucket 。
  • 如果方便的情况下,可以购买一台和 bucket 同 region 的 ECS 走内网上传,也会提升性能。
  • bucket 初始化的代码把 crc64 关掉,也可以优化上传的性能。
    = oss2.Bucket(auth, 'endpoint', 'bucket',enable_crc=False)

问:oss bucket 怎么提高数量?

答:

  • oss bucket 默认是 30 个,合理的利用 bucket preifx 和 RAM 策略可以给每一个用户配置一个单独的 prefix 即可,这样一劳永逸。
  • 如果特殊业务需求提供工单到阿里云再分析处理。

问:ossutil64 有限速功能吗?

答:

  • 可以通过两个参数控制下多文件的上传并发 -jobs -parallel
  • 限速功能是一个后期规划。

问:访问 OSS 比较慢有什么优化建议?

答:

  • 使用内网地址访问 OSS
  • CDN + OSS 的模式服务
  • 大文件使用断点上传、下载(既能分片还能断点)

问:文件被删除怎么查

答:最好先开通 oss log 功能后自己查询,如果之前没有开启 log ,很难查到,可以尝试提交工单找到阿里云进行处理。

问:文件进行压缩的条件

答:

  • Conetnt-Type 必须是以下几种之一:
    “text/cache-manifest” “text/xml” “text/plain” “text/css” “application/javascript” “application/x-javascript” “application/rss+xml”
  • 客户端发起的请求中必须要含有 "content-Encoding:gzip" 头才可以。

问:事件通知不生效

  • 如果是控制台上传必须要配置 postobject 通知类型,最好配置全部类型的事件通知,一劳永逸。
  • 确认是否上传成功,标准是 oss 返回的上传状态码是 200 ,并且 response header 中必须有 requestID。
  • 确认 oss 设置的 mns 通知队列或者 topic 是否正常,有没有写错,是否可以正常收到消息。
  • 客户端的通知地址网络、应用是否正常。
  • 设置的触发 prefix 是否正确。

问:You have no right to access this object because of bucket acl

答:

  • OSS 私有的,用户没权限访问。
  • 用户访问的文件是归档的没有解冻。
  • OSS 私有的,用户访问携带的鉴权信息不对。
  • 用户请求 OSS 是用子账号请求,子账号的策略不够。

问:浏览器播放视频有声音没视频,本地播放正常

答:
如果是本地播放起可以播放可以证明 oss 的文件没问题,就是浏览器兼容问题,可以通过这个工具检测一下 tool

问:InvalidPolicyDocument

答:用户的请求中出现一个非法操作参数 “Content-type” 请检查用户是否在策略中配置了。

问:本地计算的 MD5 源文件和 Content-MD5 一致 但是报 InvalidDigest

image.png

答:

  • OSS 的接收到的 MD5 value 值必须是大写的
  • OSS md5 要求是 128bit 的值然后经过 base64 编码得到 24 位。
  • Content-MD5 要大写。

问:Header 签名中如何添加过期时间

答:OSS Header 签名的方式不支持定义过期时间。

问:Android-SDK 目前支持 Android9.0 ?

答:支持

问:OSS 生命周期生效时间

答:执行时间为不大于用户设置过期 Days + 2天 ,举例 ,当前上传了一个 文件 ,last-modify 是 11 19 号,12:00,保留时间 30 天 执行计划任务的时间就是,11 19 12:00 + 30 天 + 2天 = 12 21 号会执行删除(不超过这个时间点)

问:批量删除 OSS 的文件

答:

  • 第一种,如果文件在不同的 prefix 下,prefix 彼此同级,可以多次调用 ossutil 去删除。
  • 第二种,通过 SDK 删除,在程序中通过 thread 多线程调用 delete ,传入不通的 prefix 删除,可以参考。 删除

问:存在 OSS 的视频文件通过浏览器不能播放

答:

  • 先把文件下载本地看是否能播放,本地可以播放,放到浏览器不行那就说明视频的编码可能出现问题浏览器不能解码导致。
  • 可以用 ffprobe 或者 ffplay 播放一起看看有什么异常信息,如下视频出现 TNS 错误,浏览器无法解码播放。
    image.png

问:The bucket you are attempting to access must be addressed using the specified endpoint.Please send all future requests to this endpoint.

答:

  • 访问 CDN 的账号和 bucket 不是一个。
  • 客户访问的 bucket 和 endpoint 写错。
  • 客户通过域名访问,域名没有和 OSS 绑定。
  • OSS 通过 CDN 访问,回原到 OSS 没有加 host 头信息。

问:访问 OSS 发生 301 跳转

答:

  • 先直接固定 OSS 访问,使用 https 测试,如果发生了 301 ,再继续检查下自己的回原设置,如果设置匹配前缀后者其他目录规则的,就触发了 301 跳转,属于正常现象
  • 如果客户没有设置 301 ,可以直接切成 https ,然后抓包看下是否被劫持了。

问:OSS 上传后没有回调没通知

答:

  • 事件通知 10 分钟后才能生效;
  • 控制台上传要配置 postobject 回调;
  • 确认文件是否上传成功,只有返回 http.status==200 && requestID !=None 才算成功,其他并不保证是准确的判断;
  • 如果以上都已经确认正常,那就是 mns 没有将消息发出去;

问:为什么 oss 的资源会自动加上 Content-Disposition

答:

  • 由于网络安全的管理要求,所有存在 oss 的资源不能直接作为网页直接展示,必须要加上 Content-Disposition: attachment; filename={filename}
    只有在 oss 绑定了自己备案的域名后才能在线展示出来。
  • 绑定好域名后,oss 会自动将 Content-Disposition 去掉,不用手动操作。

问:阿里云oss browser上传文件如何跳过已经存在的。

答: 不支持

问:nginx proxy 到 OSS 异常

答:类似问题请检查下 OSS 控制台上,域名绑定是否已经关联了用户的域名,如果没有请绑定域名,否则访问会出现异常,或者用户将回源的 host 改为 OSS 的访问域名也可。

相关实践学习
对象存储OSS快速上手——如何使用ossbrowser
本实验是对象存储OSS入门级实验。通过本实验,用户可学会如何用对象OSS的插件,进行简单的数据存、查、删等操作。
相关文章
|
存储 Java API
最佳镜像搬运工 Skopeo 指南(2)
最佳镜像搬运工 Skopeo 指南(2)
|
安全 机器人 Python
python之钉钉机器人自动发消息——傻瓜式教程
自动化跑完的结果,需要自动发送到钉钉群,自动将数据、报告、截图等保存至公司内部服务器,钉钉通知的时候,需要有个链接,点击就可以跳转。
4448 0
python之钉钉机器人自动发消息——傻瓜式教程
|
2月前
|
人工智能 监控 算法
Qoder 发布社区版:BYOK免费了
Qoder社区版上线,免费开放BYOK(自带密钥)功能!开发者可自由接入Qwen、Kimi、DeepSeek等5大国产模型,按需选择Coding/Token/按量三种计费模式。零配置用顶级模型,或全权掌控成本与工具链——自由,才是创造力的起点。(239字)
2054 0
|
4月前
|
Serverless
阿里云产品二月刊来啦
千问 Qwen3.5-Plus 重磅登场,百炼 Coding Plan 支持多款开闭源模型,桌面 Agent 工具 CoPaw 开源,函数计算 AgentRun 重磅上线知识库功能|产品二月刊
421 6
|
IDE 网络协议 安全
阿里Java编程规约【九】 注释规约
1.【强制】类、类属性、类方法的注释必须使用 Javadoc 规范,使用 /** 内容 */ 格式,不得使用 // xxx 方式。 说明:在 IDE 编辑窗口中,Javadoc 方式会提示相关注释,生成 Javadoc 可以正确输出相应注释;在 IDE 中,工程调用方法时,不进入方法即可悬浮提示方法、参数、返回值的意义,提高阅读效率。
2352 0
|
人工智能 API 定位技术
MCP全方位扫盲
MCP(Model Context Protocol)是由Anthropic提出的协议,旨在标准化大模型与外部数据源和工具的通信方式。其核心架构包括MCP Client(客户端)和MCP Server(服务端),通过标准化接口实现解耦,支持不同LLM无缝调用工具。相比传统方法,MCP简化了Prompt工程,减少定制代码,提升复用性。实际场景中,如天气查询或支付处理,MCP可智能调用对应工具,优化用户体验。MCP的核心价值在于标准化通信、统一工具描述及动态兼容性,成为大模型与外部服务的智能桥梁。
|
网络协议 Ubuntu Linux
在IPad Pro上怎么实现代码自由,如何让IPad Pro变成你的生产力工具?
如何让IPad Pro变成你的生产力工具?在IPad上用Vscode写代码搞开发
1083 1
在IPad Pro上怎么实现代码自由,如何让IPad Pro变成你的生产力工具?
|
SQL Java 数据库连接
mybatis如何实现分页查询?
【10月更文挑战第19天】mybatis如何实现分页查询?
1463 3
|
SQL Oracle 关系型数据库
PLSQL 官方下载及安装
PLSQL 官方下载及安装
4862 0
PLSQL 官方下载及安装
|
关系型数据库 MySQL 数据库
Unknown collation: ‘utf8mb4_0900_ai_ci‘
Unknown collation: ‘utf8mb4_0900_ai_ci‘