Python+;AWS S3的Boto3:错误-桶名称必须与正则表达式匹配^[a-zA-Z0-9.\-{1255}$”;
我有一个来自终端的输入,它被传递到Python+;AWS S3的Boto3:错误-桶名称必须与正则表达式匹配^[a-zA-Z0-9.\-{1255}$”;,python,regex,amazon-web-services,amazon-s3,boto3,Python,Regex,Amazon Web Services,Amazon S3,Boto3,我有一个来自终端的输入,它被传递到bucket one,它存在于Amazon Web Services的S3上,当我尝试以下操作时: bucket = s3.Bucket(bucket_name) bucket = object(bucket) for obj in bucket.objects.all(): 我遇到了一个错误:Bucket name必须与regex“^[a-zA-Z0-9.\-\\-\]{1255}$”。我甚至尝试执行str(Bucket\u name),但仍然得到相同的错
bucket one
,它存在于Amazon Web Services的S3上,当我尝试以下操作时:
bucket = s3.Bucket(bucket_name)
bucket = object(bucket)
for obj in bucket.objects.all():
我遇到了一个错误:Bucket name必须与regex“^[a-zA-Z0-9.\-\\-\]{1255}$”
。我甚至尝试执行str(Bucket\u name)
,但仍然得到相同的错误
我可能做错了什么?提前谢谢你们,我一定会投赞成票并接受答案
如何分配bucket\u名称:
parser = argparse.ArgumentParser(description = 'Practice')
parser.add_argument('--bucket_name', nargs = 1, default = None)
args = parser.parse_args()
bucket_name = args.bucket_name
您需要从
add\u参数调用中删除nargs=1
。从argparse
中:
请注意,nargs=1生成一个项目的列表。这与默认情况不同,默认情况下,项目是由自身生成的
您想将一个字符串传递给s3。Bucket
只包含Bucket名称,而不是一项列表的字符串表示形式。您如何分配Bucket\u name
?请显示设置Bucket\u name
的代码。@jordanm刚刚在原始帖子中用EDIT@Soviut请看一下原稿中的编辑奥斯特。