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

使用inquirer列出S3存储桶实现单选上传的代码问题排查

S3存储桶选择功能修复方案

问题原因

  • 你将选择弹窗的生成逻辑放在了存储桶遍历循环内,每遍历到1个存储桶就会触发1次弹窗,每次弹窗只有当前遍历到的1个存储桶选项
  • 构造选项列表时错误加了一层大括号,将字符串类型的桶名包裹为集合类型,不符合choices参数的传入要求

修复后代码

import boto3
import inquirer

# 初始化S3客户端
s3 = boto3.client('s3')
response = s3.list_buckets()

# 先一次性收集所有存储桶名称,生成选项列表
bucket_choices = [bucket["Name"] for bucket in response['Buckets']]
print('已存在的存储桶:')

# 仅生成一次选择弹窗,传入全部存储桶选项
questions = [
    inquirer.List('Buckets',
                message="请选择要上传文件的存储桶: \n",
                choices=bucket_choices,
            ),
]
answers = inquirer.prompt(questions)

# 获取用户选中的存储桶,后续可基于该变量执行上传逻辑
selected_bucket = answers['Buckets']
print(f"已选中存储桶:{selected_bucket}")

内容的提问来源于stack exchange,提问作者Sergey V.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 04:24:03