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

如何将S3中的大体积ZIP文件传输至Sagemaker Notebook实例?

从S3直接传输文件到Sagemaker Notebook实例的方法

以下几种方法都不需要从本地中转,直接在Sagemaker Notebook实例内完成S3文件的获取与处理:

1. 使用AWS CLI直接下载/同步

Sagemaker Notebook实例默认预装了AWS CLI,只要实例关联的IAM角色拥有S3对象读取权限,就能直接执行命令:

  • 下载单个ZIP文件:
    aws s3 cp s3://your-bucket-name/path/to/your/file.zip ./local-directory/
    
  • 同步整个S3目录下的所有ZIP文件到实例本地:
    aws s3 sync s3://your-bucket-name/source-path/ ./local-directory/
    

可添加--multipart-chunk-size 10GB参数优化大文件传输效率,或指定--region your-region-id匹配S3桶所在区域以加快速度。

2. 在Python代码中用boto3下载

适合在Notebook的代码单元格中直接操作,尤其适合程序化处理多个文件:

import boto3
from botocore.config import Config

# 配置多线程提升大文件下载速度
s3_config = Config(max_concurrency=10)
s3 = boto3.client('s3', config=s3_config)

# 下载单个文件
s3.download_file(
    Bucket='your-bucket-name',
    Key='path/to/your/file.zip',
    Filename='./local-directory/file.zip'
)

# 处理超大文件推荐用流式下载,避免内存溢出
with open('./local-directory/large-file.zip', 'wb') as f:
    s3.download_fileobj('your-bucket-name', 'path/to/large-file.zip', f)

3. 挂载S3桶到实例文件系统(无需提前下载)

通过s3fs将S3桶挂载为实例的本地目录,直接读取S3上的ZIP文件并解压,仅需存储解压后的文件:

  1. 安装s3fs:
    pip install s3fs
    
  2. 在Python中挂载并操作:
    import s3fs
    import zipfile
    
    # 挂载S3桶
    fs = s3fs.S3FileSystem(anon=False)
    fs.mount('s3://your-bucket-name', './mounted-s3-bucket')
    
    # 直接读取S3上的ZIP文件并解压
    with zipfile.ZipFile('./mounted-s3-bucket/path/to/file.zip', 'r') as zip_ref:
        zip_ref.extractall('./unzip-directory/')
    

注意事项

  • 确保Sagemaker Notebook实例的IAM角色已配置s3:GetObject、s3:ListBucket等必要权限;
  • 选择磁盘容量足够的实例类型(需容纳100-105GB的解压后文件),或挂载EBS卷扩展存储;
  • 大文件传输时,优先使用多线程/分块传输参数提升效率。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 12:09:53