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

使用DuckDB读取S3存储桶中GBIF数据时遭遇404错误的技术求助

DuckDB读取S3存储桶中GBIF数据时遭遇404错误的技术求助

看起来你在尝试用DuckDB读取GBIF托管在AWS S3上的公开物种分布数据时碰了壁,连续两次404错误确实闹心——毕竟官方说这个桶是公开可访问、不需要凭证的。我来帮你排查几个大概率的问题:

  • 最容易忽略的拼写错误
    你写的文件名是occurence.parquet,但正确拼写应该是occurrence.parquet(注意中间是两个r:occurrence),少一个r直接导致文件找不到,这是404错误的高频诱因。

  • 路径格式完全错了
    你后来尝试的URL里加了index.html#,这完全是画蛇添足——S3存储桶的文件访问不需要通过网页索引,那种带#的是网页端的锚点,根本不是实际的文件路径。

  • 日期目录可能还不存在
    你指定的日期是2025-06-01,这个日期说不定还没有对应的数据集(比如当前时间还没到,或者GBIF还没同步该日期的数据)。你可以先用DuckDB的ls命令确认路径下的实际内容:

INSTALL httpfs;
LOAD httpfs;
-- 先查看occurrence目录下的所有可用日期
SELECT * FROM ls('s3://gbif-open-data-us-east-1/occurrence/');
-- 再查看某个存在的日期下的文件
SELECT * FROM ls('s3://gbif-open-data-us-east-1/occurrence/[实际存在的日期]/');

给你一套调整后的正确操作流程:

  1. 先把文件名里的occurence改成occurrence,修正拼写
  2. 用ls命令确认你要访问的日期目录和文件确实存在
  3. 用标准S3路径格式执行查询,示例如下:
INSTALL httpfs;
LOAD httpfs;
-- 假设2024-12-01是已存在的日期目录
SELECT * FROM read_parquet('s3://gbif-open-data-us-east-1/occurrence/2024-12-01/occurrence.parquet') LIMIT 5;

另外补充个小提示:GBIF的这个S3桶确实是公开只读的,不需要配置任何AWS访问密钥,只要DuckDB的httpfs扩展正常加载就能访问,不用在凭证上浪费时间。如果还是有问题,可以检查下你的DuckDB版本是不是太老,旧版本可能对S3路径的解析有bug。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.07 09:23:10