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

如何修改Python函数将S3对象下载到自定义本地目录

修改后的Python函数
import os
import boto3

def downloadDirectoryFroms3(bucketName, remoteDirectoryName, localDirectoryName):
    s3_resource = boto3.resource('s3')
    bucket = s3_resource.Bucket(bucketName)
    number = 0
    for obj in bucket.objects.filter(Prefix=remoteDirectoryName):
        number += 1
        # 获取文件相对远程目录的路径,移除远程目录前缀
        relative_path = os.path.relpath(obj.key, remoteDirectoryName)
        # 拼接本地保存路径
        local_path = os.path.join(localDirectoryName, relative_path)
        # 创建本地目录(不存在则创建)
        if not os.path.exists(os.path.dirname(local_path)):
            os.makedirs(os.path.dirname(local_path))
        # 下载文件到指定本地路径
        bucket.download_file(obj.key, local_path)

# 调用示例:将远程AnalysisOutput目录下的文件下载到本地tempS3output目录
downloadDirectoryFroms3('reciter-dynamodb', 'AnalysisOutput', 'tempS3output')

修改说明:

  • 新增localDirectoryName参数,用来指定本地保存的根目录,彻底避免硬编码路径
  • 用os.path.relpath剥离S3对象key里的远程目录前缀,得到文件的相对路径
  • 通过os.path.join把本地根目录和文件相对路径拼接成最终的本地保存路径
  • 保持原有的目录创建逻辑,确保文件能正确保存到目标路径

内容的提问来源于stack exchange,提问作者Paul Albert

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 12:55:19