You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Excel通过REST API连接S3:可读取桶根文件,无法读取桶内文件夹文件

问题排查与解决方案
  • API网关路径配置缺失通配符
    先检查API Gateway的资源路径定义。如果你的API只配置了/mys3bucket/{filename}这类单层级路径,那/mys3bucket/myfolder/myfile1.txt这种多级路径会匹配不到对应的集成规则,直接触发权限拦截。把资源路径改成/mys3bucket/{proxy+},这个通配符能捕获所有子路径,把完整的文件路径传递给S3集成。

  • S3权限策略未覆盖子路径
    确认API Gateway执行角色的IAM权限。S3里的“文件夹”其实是对象键的一部分,比如myfolder/myfile1.txt是一个完整的对象键。检查IAM策略的资源项,如果只写了arn:aws:s3:::mys3bucket/*之外的限定范围(比如只允许根目录文件),那子路径的请求会被S3拒绝。确保策略里的资源包含arn:aws:s3:::mys3bucket/*,覆盖所有层级的文件。

  • API集成路径映射错误
    查看API Gateway与S3集成的请求设置。如果是GET方法集成S3,要确保集成请求的路径是从请求中提取完整的对象键——比如用$input.params('proxy')来获取整个多级路径部分,而不是只提取单个文件名参数。路径映射错了的话,API会去S3找错误的对象,自然返回403。

  • Excel请求的编码或签名问题
    虽然你把斜杠换成了%2F,但Excel的Web源可能会自动二次编码,或者没有正确传递API密钥验证所需的路径签名。试试用Power Query手动构建请求:直接输入编码后的完整URL,或者在Power Query里拼接路径并手动编码,确保请求发送的路径和签名计算时用的路径完全一致——API的密钥验证对路径的编码格式要求很严,不一致就会触发Forbidden。

  • API密钥验证逻辑未处理多级路径
    检查API的密钥验证代码。如果验证逻辑只解析到第一个斜杠后的文件名,没有处理多级路径的情况,那带子文件夹的请求会因为验证不通过被拒绝。要确保验证逻辑使用的是完整的请求路径(或正确编码后的路径),并且签名计算过程中包含了完整的路径参数。

内容的提问来源于stack exchange,提问作者euskadut

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 09:12:44