开发者社区 > 云存储 > 对象存储OSS > 正文

阿里云oss公网图片链接在浏览器地址栏输入后可正常显示,放到商城显示403错误,是什么原因

微信图片_20240315180155.png

展开
收起
游客firobm7ofzvn2 2024-03-15 18:12:41 54 0
2 条回答
写回答
取消 提交回答
  • 阿里云对象存储服务(OSS)公网图片链接在浏览器直接输入可以正常显示,但在商城中显示403错误,通常有以下几种可能的原因:

    1. 防盗链设置

      • 阿里云OSS支持防盗链功能,如果启用了防盗链,并且没有将商城服务器的IP地址或者域名加入到允许访问的白名单中,则从商城加载图片时会被拒绝,返回403错误。
    2. 访问权限控制

      • OSS中的Bucket或Object访问权限设置不正确。例如,只设置了公共读而没有设置匿名访问权限,或者设置了仅限特定用户或角色访问,这可能导致除了直接通过浏览器访问之外的其他引用请求失败。
    3. URL签名过期

      • 如果使用了带有签名的临时URL访问图片,在一定有效期后未更新签名,链接会失效并导致403错误。
    4. CDN缓存问题

      • 如果OSS Bucket配置了CDN加速,可能存在CDN缓存策略或刷新问题,尤其是当最近对OSS权限做了调整之后,可能需要清理或刷新CDN缓存才能生效。
    5. 跨域资源共享(CORS)限制

      • 如果商城应用与OSS不在同一个域下,而OSS上未正确配置CORS规则以允许商城所在域名进行资源请求,也会导致访问被禁止。
    6. 商城端代码处理

      • 商城应用在加载图片时,可能会对URL进行额外的处理,比如编码、拼接等,这些处理不当可能会导致实际访问的URL与直接在浏览器中输入的有效URL不同,从而产生403错误。

    为了解决这个问题,您需要检查以下几个方面:

    • 确认OSS的访问控制列表(ACL)和 bucket 策略是否允许商城应用的来源访问。
    • 检查防盗链设置是否包含商城服务器的来源。
    • 如果使用了CDN,请检查CDN相关的配置及缓存状态。
    • 确认商城应用加载图片的方式以及是否涉及CORS问题,并相应地在OSS上配置正确的CORS规则。
    2024-03-16 21:39:25
    赞同 2 展开评论 打赏
  • 北京阿里云ACE会长

    image.png

    问题原因
    无法正常访问图片的报错原因如下:

    Bucket为私有权限

    防盗链配置异常

    解决方案
    当通过HTTP访问存储在OSS中的图片发生报错时,请参见以下操作进行排查处理:

    确认Bucket权限。如果为私有权限,请按以下方式处理:

    通过签名访问,签名可以参见阿里云SDK向OSS发起请求。带身份验证访问OSS资源的URL拼接方法请参见OSS请求流程。

    将权限修改为公共读,如何修改权限请参见设置文件读写权限ACL。

    确认防盗链设置。如果设置的Referer不允许为空,则只有预先设定好的Referer才可以进行访问,其他Referer访问会被拦截。在浏览器直接请求图片URL时Referer为空,故请求失败返回403错误。如无特殊需求,可将设置改为允许空Referer。详情请参见OSS防盗链配置及常见错误排查方法。

    如果还是无法解决,请参见访问OSS时出现403状态码的排查方法,进行排查。

    参考;https://help.aliyun.com/zh/oss/an-403-error-occurs-when-requesting-images-stored-in-oss-through-http?spm=a2c4g.2590613.0.i12

    2024-03-15 21:09:26
    赞同 展开评论 打赏

相关产品

  • 对象存储
  • 热门讨论

    热门文章

    相关电子书

    更多
    WEB浏览器中即将发生的安全变化 立即下载
    基于浏览器的实时构建探索之路 立即下载
    基于浏览器的实时构建探索之路--玄寂 立即下载