适用于 AWS S3 的 Python + Boto3:错误 - 存储桶名称必须与正则表达式“^[a-zA-Z0-9.\-_]{1,255}$”匹配

Dan*_* Me 5 python regex amazon-s3 amazon-web-services boto3

我有来自正在传入的终端的输入bucket-one, which exists on Amazon Web Services\xe2\x80\x99 S3, and when I attempt the following:

\n\n
bucket = s3.Bucket(bucket_name)\nbucket = object(bucket)\n\nfor obj in bucket.objects.all():\n
Run Code Online (Sandbox Code Playgroud)\n\n

我遇到一个错误:Bucket name must match the regex "^[a-zA-Z0-9.\\-_]{1,255}$\xe2\x80\x9d。我什至尝试做str(bucket_name), yet still getting the same error.

\n\n

我可能做错了什么?预先感谢您,一定会投票并接受答案

\n\n

我如何分配bucket_name:

\n\n
parser = argparse.ArgumentParser(description = \'Practice\')\nparser.add_argument(\'--bucket_name\', nargs = 1, default = None)\nargs = parser.parse_args()\nbucket_name = args.bucket_name\n
Run Code Online (Sandbox Code Playgroud)\n

jor*_*anm 3

您需要nargs=1add_argument通话中删除。来自argparse 文档

请注意,nargs=1 会生成一个只有一项的列表。这与默认情况不同,默认情况下该项目是自行生成的。

您希望传递一个s3.Bucket仅包含存储桶名称的字符串,而不是单个项目列表的字符串表示形式。