Windows10+Python3.10环境下s3cmd配置报错,求解决或替代方案
解决s3cmd配置报错及私有S3仓库访问方案
一、修复s3cmd的TP_NUM_C_BUFS错误
这个错误是GitBash的Cygwin环境和Windows原生Python不兼容导致的,试试这几个办法:
- 改用Cygwin内置的Python:放弃Windows系统安装的Python,换成GitBash自带Cygwin环境的Python:
- 打开GitBash,运行
setup-x86_64.exe(32位系统用setup-x86.exe)打开Cygwin安装器 - 搜索并安装
python3、python3-pip两个包 - 用Cygwin的pip安装s3cmd:
pip3 install s3cmd - 再运行
s3cmd --configure即可正常配置
- 打开GitBash,运行
- 调整Cygwin环境变量:在GitBash的
~/.bashrc文件末尾添加一行:export CYGWIN="nodosfilewarning",保存后重启GitBash再执行配置命令 - 降级Python版本:s3cmd v2.2对Python 3.10兼容性一般,换成Python 3.8或3.9版本,重新安装后再运行
s3cmd --configure
二、其他访问私有S3仓库的途径
1. AWS CLI(首推)
AWS官方命令行工具,兼容性拉满,操作步骤:
- 下载安装Windows版AWS CLI v2
- 打开GitBash或CMD,运行
aws configure,按提示输入AWS Access Key ID、Secret Access Key、默认区域(比如us-east-1)、输出格式(选json即可) - 常用命令示例:
- 查看桶内文件:
aws s3 ls s3://你的私有桶名/ - 上传本地文件:
aws s3 cp 本地文件路径.txt s3://你的私有桶名/目标路径/ - 下载文件到本地:
aws s3 cp s3://你的私有桶名/目标路径/文件.txt ./
- 查看桶内文件:
2. 用Python的boto3写脚本
适合需要自动化操作的场景,步骤:
- 先安装boto3:
pip install boto3 - 简单示例脚本:
import boto3 # 配置凭证(也可先通过aws configure设置,无需硬编码) s3_client = boto3.client( 's3', aws_access_key_id='你的Access Key', aws_secret_access_key='你的Secret Key' ) # 列出桶内所有对象 response = s3_client.list_objects_v2(Bucket='你的私有桶名') for obj in response.get('Contents', []): print(obj['Key']) # 下载文件到本地 s3_client.download_file('你的私有桶名', '远程文件路径.txt', '本地保存路径.txt')
3. rclone
支持多种云存储的工具,操作灵活,步骤:
- 下载安装Windows版rclone
- 打开GitBash,运行
rclone config,选择“新建远程”,类型选“S3”,按提示输入凭证、区域等信息 - 常用命令示例:
- 查看桶内容:
rclone ls 你设置的远程名:你的私有桶名 - 上传文件夹:
rclone copy 本地文件夹路径 你设置的远程名:你的私有桶名/目标路径/ - 下载文件夹:
rclone copy 你设置的远程名:你的私有桶名/目标路径/ 本地文件夹路径
- 查看桶内容:
内容的提问来源于stack exchange,提问作者Dave
相关产品推荐
相关产品推荐

