【发布时间】:2022-11-06 21:24:23
【问题描述】:
我正在尝试编写一个代码,其中在 S3 存储桶中我想检查该文件夹是否存在,如果不存在,我想创建该文件夹。以下是我的代码。
def checkiffolderexists(bucket:str, path:str) -> bool:
s3 = boto3.Session(profile_name='saml').client('s3')
if not path.endswith('/'):
path = path + '/'
print(path)
resp = s3.list_objects(Bucket=bucket, Prefix=path, Delimiter='/', MaxKeys=1)
return 'Contents' in resp
我将以下参数传递给创建的此方法。
checkiffolderexists('star-mi-qa-ctset-delta-us-east-1','star-mi-qa-ctset-delta-us-east-1/vendor=ctset/type=own_v5/year=2022/month=10/day=01')
star-mi-qa-ctset-delta-us-east-1 是我的存储桶名称,我想在其中检查 day=01/ 文件夹是否存在。如果没有,我想在传递给该方法的同一路径中创建该文件夹。这里的问题是即使文件夹存在那里,该方法返回我错误。在将参数传递给方法或代码时我犯了什么错误?
【问题讨论】:
标签: python amazon-web-services boto3