如何通过AWS CLI从Amazon S3下载区块链公开数据集?
无需专用软件下载AWS公开区块链数据集的方法
既然你已经能通过AWS CLI列出存储桶内容,直接用CLI的内置命令就能完成下载,不需要额外专用工具,具体操作如下:
单个文件下载
使用aws s3 cp命令,加上--no-sign-request参数跳过身份验证,格式如下:aws s3 cp --no-sign-request s3://aws-public-blockchain/v1.0/eth/[具体文件路径] ./本地目标路径比如要下载某一天的以太坊区块文件,命令示例:
aws s3 cp --no-sign-request s3://aws-public-blockchain/v1.0/eth/blocks/2023/10/01/blocks_20231001_0000.parquet .末尾的
.表示下载到当前终端所在的本地目录。批量下载整个目录
要同步整个目录下的所有文件(包括子目录),用aws s3 sync命令,同样带上--no-sign-request:aws s3 sync --no-sign-request s3://aws-public-blockchain/v1.0/eth/[目标目录] ./本地文件夹名称比如同步所有以太坊区块数据到本地
eth-blocks文件夹:aws s3 sync --no-sign-request s3://aws-public-blockchain/v1.0/eth/blocks/ ./eth-blocks这个命令会自动跳过已下载的文件,适合断点续传或增量更新。
过滤特定类型文件下载
如果只需要某类文件(比如.parquet格式),可以用--exclude和--include参数过滤:aws s3 sync --no-sign-request --exclude "*" --include "*.parquet" s3://aws-public-blockchain/v1.0/eth/blocks/ ./eth-parquet-data上面的命令会排除所有文件,只下载后缀为.parquet的文件。
额外提示
- 确保你的AWS CLI是最新版本,避免命令兼容性问题;
- 若下载速度慢,可以添加
--region us-east-1参数指定存储桶所在的美东区域,优化连接:aws s3 sync --no-sign-request --region us-east-1 s3://aws-public-blockchain/v1.0/eth/blocks/ ./eth-blocks
内容的提问来源于stack exchange,提问作者Stepan Yakovenko
相关产品推荐
相关产品推荐

