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

使用Earthdata AWS凭证通过boto3访问MERRA-2数据遇权限错误

解决GES DISC MERRA-2数据S3访问权限问题

问题解答

  1. 临时AWS凭证是否支持本地直接访问?
    是的,GES DISC返回的临时AWS凭证完全支持从本地机器直接访问MERRA-2文件,但必须确保boto3客户端的配置符合要求,否则会触发403权限错误。

  2. 存储桶列表功能是否被禁用?
    没错,GES DISC的gesdisc-cumulus-prod-protected存储桶默认禁用了s3:ListBucket权限。这是官方有意设置的,目的是避免大规模列表操作影响存储桶性能,同时强化数据访问的安全性。用户只能通过已知的完整文件路径直接访问对象。

修正方案与示例代码

你的核心问题大概率是boto3客户端缺失了关键配置参数,以下是修正后的完整操作流程:

1. 创建符合要求的S3客户端

GES DISC的S3存储桶强制要求使用us-west-2区域和s3v4签名版本,创建客户端时必须指定这两个参数:

import boto3

# 替换为你从GES DISC获取的临时凭证
temp_credentials = {
    "access_key": "你的accessKeyId",
    "secret_key": "你的secretAccessKey",
    "session_token": "你的sessionToken"
}

# 初始化正确配置的S3客户端
client = boto3.client(
    's3',
    region_name='us-west-2',  # 必须指定该区域
    aws_access_key_id=temp_credentials['access_key'],
    aws_secret_access_key=temp_credentials['secret_key'],
    aws_session_token=temp_credentials['session_token'],
    config=boto3.session.Config(signature_version='s3v4')  # 必须使用s3v4签名
)

2. 直接下载指定文件

使用修正后的客户端执行下载,确保文件路径与Earthdata网页界面上的完全一致(S3路径区分大小写,需严格匹配):

# 执行文件下载
client.download_file(
    "gesdisc-cumulus-prod-protected",
    "MERRA2/M2T3NPUDT.5.12.4/2025/03/MERRA2_400.tavg3_3d_udt_Np.20250331.nc4",
    "test.nc4"
)

额外注意事项

  • 临时凭证有效期为1小时,过期后需重新从GES DISC凭证端点获取。
  • 若仍出现403错误,检查Earthdata账户是否已获得MERRA-2数据集的访问授权(部分数据集需要额外申请权限)。
  • 确认文件路径无拼写错误,包括大小写、层级分隔符等细节。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.06 07:12:35