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

如何读取AWS S3存储桶中远程存储的.h5文件及排查301报错

问题原因

你触发HTTP 301 PermanentRedirect报错的核心原因是s3read_using的参数传参格式不符合aws.s3包的要求,这也是新手第一次用这个包最容易踩的坑:

  • bucket参数仅需要传入纯存储桶名称,不需要带s3://协议前缀、也不需要拼接桶内的路径内容,你之前传入的s3://arpa-e-perform/ERCOT/属于错误格式
  • object参数仅需要传入文件在存储桶内的相对路径,不需要带s3://前缀和存储桶名称,传入完整S3 URI会导致包构造请求时拼接错访问端点,最终被S3服务返回重定向报错
修正方案

s3read_using本身就会自动把目标文件下载到本地临时目录,再将临时文件路径传入你指定的读取函数,读取完成后自动清理临时文件,完全满足你不需要手动提前下载文件的需求。修正后的代码如下:

library(aws.s3)
library(rhdf5)

# 全局配置默认区域,避免每次调用函数重复传region参数
Sys.setenv("AWS_DEFAULT_REGION" = "us-west-2")

# 读取S3上的h5文件
h5_result <- s3read_using(
  FUN = rhdf5::H5Fopen,
  bucket = "arpa-e-perform",
  object = "ERCOT/2018/Solar/Actuals/BA_level/BA_solar_actuals_2018.h5"
)
补充说明
  • 你之前调用bucket_exists能正常返回存储桶存在的结果,说明本地配置的AWS访问凭证、网络连通性都没有问题,不需要额外调整权限或网络配置
  • 如果后续需要写入文件到S3,s3write_using的bucket和object参数规则和读取时完全一致,同样不要传入完整S3 URI

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 14:31:00