Skip to content

匿名访问

GS3D下载工具支持匿名访问公开的AWS S3存储桶,这意味着你可以在不提供AWS凭证的情况下下载公开数据。本页面详细介绍匿名访问功能。

何为公开存储桶

公开存储桶是AWS S3中设置了公开读取权限的存储桶,通常用于分享公共数据集、开源软件、文档等。许多科研机构、政府组织和开源项目使用公开存储桶来分享数据。

启用匿名访问

使用--anonymous-a参数可以启用匿名访问模式:

bash
python GS3D.py s3://public-bucket/folder/ --anonymous

在匿名访问模式下,脚本会使用AWS SDK的无签名配置(botocore.UNSIGNED),完全跳过认证过程。

匿名访问示例

下载公开气候数据

bash
python GS3D.py s3://geos-chem/GEOS_2x2.5/MERRA2/2024/02/ --anonymous --output-dir ./climate-data

结合区域参数

有时需要指定正确的AWS区域才能成功访问公开存储桶:

bash
python GS3D.py s3://public-bucket/folder/ --anonymous --region us-east-1

保留目录结构

你可以将匿名访问与目录结构保留选项结合使用:

bash
python GS3D.py s3://public-dataset/nested/path/ --anonymous --keep-structure --output-dir ./data

技术实现

在匿名访问模式下,GS3D下载工具使用以下配置创建S3客户端:

python
from botocore import UNSIGNED
from botocore.config import Config

s3_client = boto3.client(
    's3',
    config=Config(signature_version=UNSIGNED)
)

这确保了请求不会包含任何认证头,允许访问公开存储桶。

常见问题排解

无法访问公开存储桶

如果在使用匿名模式时仍然遇到访问问题:

  1. 确认存储桶确实是公开的:并非所有S3存储桶都是公开的,某些看似公开的数据可能仍需要凭证
  2. 尝试指定正确的区域:公开存储桶通常仍然需要在正确的区域访问
    bash
    python s3_folder_downloader.py s3://public-bucket/folder/ --anonymous --region us-east-1
  3. 检查URL格式:确保S3 URL格式正确,包括正确的存储桶名和前缀
  4. 检查网络连接:确保你的网络能够访问AWS S3服务

常见错误消息

"Access Denied"

这通常意味着存储桶不是公开的,或者特定前缀(文件夹)不是公开的。

解决方案:

  • 确认存储桶和前缀确实允许公开访问
  • 如果你有权限,使用AWS凭证而不是匿名访问

"NoSuchBucket"

这表明指定的存储桶不存在。

解决方案:

  • 检查存储桶名称拼写是否正确
  • 确认存储桶仍然存在(有时公开数据集会被移除)

"PermanentRedirect"

这表明存储桶在不同的区域。

解决方案:

  • 使用--region参数指定正确的区域
  • 如果不确定区域,可以尝试常见区域如us-east-1us-west-2

公开数据集示例

以下是一些可以用GS3D下载工具匿名访问的公开数据集示例:

  • GEOS-Chem数据:气候和大气化学数据

    bash
    python GS3D.py s3://geos-chem/GEOS_2x2.5/MERRA2/2024/02/ --anonymous
  • NASA NEX数据:气候模拟数据

    bash
    python GS3D.py s3://nasanex/NEX-DCP30/ --anonymous --region us-west-2
  • Common Crawl:网络爬虫数据

    bash
    python GS3D.py s3://commoncrawl/crawl-data/CC-MAIN-2023-06/ --anonymous

最佳实践

在使用匿名访问功能时:

  1. 确认文件总数和大小:某些公开数据集可能非常大,请在下载前确认大小
  2. 使用合适的并发线程数:根据文件大小和数量调整--max-workers参数
  3. 考虑网络带宽限制:大型数据集下载可能消耗大量带宽
  4. 优先考虑官方下载渠道:某些数据提供者可能提供更优化的下载方式

权限与尊重

虽然公开存储桶允许任何人访问,但请遵循数据提供者的使用条款和许可要求。匿名访问不意味着数据可以任意使用 - 请确保尊重数据所有者的权利和任何适用的使用限制。

使用MIT许可证发布