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

使用pandas .to_csv上传至S3报错:Anonymous access is forbidden for this operation

解决Pandas写入S3时的"Anonymous access is forbidden"错误

1. 先修复代码语法错误

你的代码中secret值的引号未闭合,这会直接导致参数解析失败,先修正这个基础问题:

df.to_csv("s3://testdatateam1/test6.csv",
          storage_options={'key': 'your_access_key',
                           'secret': 'your_secret_key',
                           'token': 'your_session_token'})

2. 补充会话令牌参数

你使用的是带会话令牌的临时凭证,必须在storage_options中加入token参数——Pandas底层依赖的s3fs(用于S3文件系统交互)需要完整的临时凭证(key、secret、token)才能完成认证,仅提供key和secret会导致认证失败,触发匿名访问错误。

3. 替代方案:通过Boto3会话传递凭证

如果上述方法仍有问题,可以先通过boto3创建会话,再将会话的凭证传递给Pandas的存储配置:

import boto3
import pandas as pd

# 用你的临时凭证创建boto3会话
session = boto3.Session(
    aws_access_key_id='your_access_key',
    aws_secret_access_key='your_secret_key',
    aws_session_token='your_session_token'
)

# 获取会话的当前凭证
credentials = session.get_credentials()
current_credentials = credentials.get_frozen_credentials()

# 传递凭证到storage_options
df.to_csv("s3://testdatateam1/test6.csv",
          storage_options={
              'key': current_credentials.access_key,
              'secret': current_credentials.secret_key,
              'token': current_credentials.token
          })

4. 确认依赖版本

确保安装了最新版本的s3fs和pandas,旧版本可能对临时凭证的支持存在问题:

pip install --upgrade pandas s3fs

注意:无需单独导入boto,Pandas通过s3fs间接调用boto3的功能,确保boto3也已正确安装。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 20:25:08