You need to enable JavaScript to run this app. 如何批量导出Amazon S3中所有文件的路径/URL到Excel表格
优惠活动
大模型
产品
解决方案
定价
更多

如何批量导出Amazon S3中所有文件的路径/URL到Excel表格

解决方案

方案1:AWS CLI 一键导出(无需编码,执行速度最快)

你只需要提前完成AWS CLI的安装和身份凭证配置(确保凭证拥有s3:ListAllMyBuckets、目标存储桶的s3:ListBucket权限),直接执行对应命令即可生成可直接用Excel打开的CSV文件。

  • Linux/macOS 环境执行命令:
aws s3api list-buckets --query "Buckets[].Name" --output text | tr '\t' '\n' | while read bucket; do aws s3api list-objects-v2 --bucket $bucket --query "Contents[].{Path:join('/',['$bucket',Key])}" --output text; done > s3_file_paths.csv
  • Windows PowerShell 环境执行命令:
foreach ($bucket in (aws s3api list-buckets --query "Buckets[].Name" --output text)) { aws s3api list-objects-v2 --bucket $bucket --query "Contents[].{Path:join('/',['$bucket',Key])}" --output text | Out-File -FilePath s3_file_paths.csv -Append }

生成的s3_file_paths.csv直接双击即可用Excel打开,路径格式完全符合你要求的「存储桶名称/文件路径」规则。

方案2:Python boto3 脚本(自定义灵活,可适配特殊需求)

boto3没有内置的批量导出方法,但路径拼接逻辑非常简单,以下是可直接执行的完整脚本:

  1. 先安装依赖:pip install boto3 pandas
  2. 执行以下脚本:
import boto3
import pandas as pd

# 初始化S3客户端,会自动读取本地配置的AWS凭证,也可手动传入ak/sk/region
s3 = boto3.client('s3')

all_paths = []
# 遍历所有存储桶,若只需导出指定桶,可直接替换为自定义桶名列表
for bucket in s3.list_buckets()['Buckets']:
    bucket_name = bucket['Name']
    # 分页拉取桶内所有对象,适配大文件量场景
    paginator = s3.get_paginator('list_objects_v2')
    for page in paginator.paginate(Bucket=bucket_name):
        if 'Contents' not in page:
            continue
        for obj in page['Contents']:
            # 按要求拼接路径
            file_path = f"{bucket_name}/{obj['Key']}"
            all_paths.append(file_path)

# 导出为Excel文件
pd.DataFrame(all_paths, columns=['文件路径']).to_excel('s3_file_paths.xlsx', index=False)

5万文件量级下两种方案均可在1分钟内完成导出,不需要手动操作单个文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 17:54:05