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

如何使用Python从AWS S3指定文件夹上传下载数据?

Python实现AWS S3指定文件夹的文件上传与下载

准备工作

  • 安装AWS SDK for Python:pip install boto3
  • 配置AWS凭证:
    • 本地环境:在~/.aws/credentials(Linux/macOS)或C:\Users\<用户名>\.aws\credentials(Windows)文件中添加:
      [default]
      aws_access_key_id = YOUR_ACCESS_KEY
      aws_secret_access_key = YOUR_SECRET_KEY
      
    • 云服务器环境:直接使用IAM角色(boto3会自动获取凭证,无需手动配置)

上传文件到S3指定文件夹

以下代码可将本地文件上传到目标桶的Execution/Data/路径下:

import boto3

def upload_to_s3(local_file_path, bucket_name, s3_folder_path):
    s3 = boto3.client('s3')
    # 提取本地文件名,拼接成S3完整对象键
    file_name = local_file_path.split('/')[-1]
    s3_object_key = f"{s3_folder_path}{file_name}"
    
    try:
        s3.upload_file(local_file_path, bucket_name, s3_object_key)
        print(f"文件 {file_name} 已成功上传到 s3://{bucket_name}/{s3_object_key}")
    except Exception as e:
        print(f"上传失败: {str(e)}")

# 示例调用
bucket = "aws-xxx-use1-00-d-s3b-xxx-yyy-xxx"
target_folder = "Execution/Data/"
local_file = "/path/to/your/local/file.txt"  # 替换为实际本地文件路径
upload_to_s3(local_file, bucket, target_folder)

从S3指定文件夹下载文件

以下代码可将Execution/Data/路径下的目标文件下载到本地:

import boto3

def download_from_s3(bucket_name, s3_folder_path, s3_file_name, local_save_path):
    s3 = boto3.client('s3')
    s3_object_key = f"{s3_folder_path}{s3_file_name}"
    
    try:
        s3.download_file(bucket_name, s3_object_key, local_save_path)
        print(f"文件 {s3_file_name} 已成功下载到 {local_save_path}")
    except Exception as e:
        print(f"下载失败: {str(e)}")

# 示例调用
bucket = "aws-xxx-use1-00-d-s3b-xxx-yyy-xxx"
target_folder = "Execution/Data/"
s3_file = "example_file.txt"  # 替换为S3文件夹内的目标文件名
local_path = "/path/to/save/local/file.txt"  # 替换为本地保存路径
download_from_s3(bucket, target_folder, s3_file, local_path)

注意事项

  • 确保AWS账号拥有目标桶的s3:PutObject(上传)和s3:GetObject(下载)权限
  • S3没有实际的文件夹概念,路径是通过对象键的前缀模拟的,上传时无需提前创建文件夹
  • 大文件上传/下载时,upload_file和download_file方法会自动处理分片逻辑

内容的提问来源于stack exchange,提问作者saurabh bhattacharya

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 16:40:19