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

如何将S3目录访问或挂载到AWS SageMaker并解决相关操作报错

解决SageMaker访问S3目录的操作步骤

1 修复aws s3 cp 404报错

首先排查执行同步命令时报404的问题,按以下步骤操作:

  • 确认S3路径真实性:登录S3控制台,确认data桶存在,且sub/dir/前缀下至少有1个文件。S3为对象存储没有原生目录结构,空的手动创建目录不会生成对应Key,会触发HeadObject 404错误。
  • 修正同步命令格式,路径末尾补斜杠避免被识别为单个对象:
    !aws s3 cp s3://data/sub/dir/ ./tempdata --recursive
    
  • 校验IAM权限:当前SageMaker Notebook绑定的执行角色,必须包含针对arn:aws:s3:::data的ListBucket权限,以及针对arn:aws:s3:::data/*的GetObject权限。如果S3对象使用KMS加密,还需要额外添加对应KMS密钥的解密权限。

2 正确配置s3fs挂载S3桶

你之前查询挂载的命令输入错误,先修正操作流程:

  • 第一步:安装s3fs(SageMaker Notebook实例为Ubuntu系统,优先用apt安装)
    !sudo apt update && sudo apt install s3fs -y
    
  • 第二步:创建本地挂载目录
    !mkdir -p ./s3_bucket_mount
    
  • 第三步:执行挂载命令,直接复用SageMaker的IAM角色权限,不需要手动配置密钥:
    !s3fs data ./s3_bucket_mount -o iam_role=auto -o url=https://s3.<替换为桶所在区域>.amazonaws.com -o nonempty -o allow_other
    
    如果你使用AWS中国区,将url后缀改为amazonaws.com.cn即可。
  • 第四步:验证挂载结果,执行正确的磁盘查询命令:
    !df -h
    
    输出中如果有s3fs开头的挂载条目即为成功,可通过!ls ./s3_bucket_mount/sub/dir查看目标路径下的所有文件。

3 轻量化访问方案(无需同步/挂载)

如果数据集体积较大,不需要全量下载到Notebook本地存储,可以直接通过boto3 SDK操作S3对象,性能更高:

import boto3

s3 = boto3.resource("s3")
bucket = s3.Bucket("data")
# 遍历目标前缀下的所有文件
for obj in bucket.objects.filter(Prefix="sub/dir/"):
    print(obj.key)
    # 按需读取文件内容示例
    # file_content = obj.get()["Body"].read()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 13:18:00