在将文件上传到AmazonS3时创建子文件夹



以前,我像这样将文件上传到AmazonS3,它运行良好:

bucket.upload_fileobj(
io.BytesIO(gzipped_content),
fileName2,
ExtraArgs={"ContentType": "text/plain"})

在这种情况下,fileName2被直接放在bucket的根文件夹中。现在我想把fileName2放在子文件夹中。像这样:bucket/year/month/day/fileName2。我把年/月/日的变量保存为字符串。我尝试过这个:

bucket.upload_fileobj(
io.BytesIO(gzipped_content),
year/month/day/fileName2,
ExtraArgs={"ContentType": "text/plain"})

但这引发了一个错误:CCD_ 2。我也试过这个:

path = year + month + day + fileName2
bucket.upload_fileobj(
io.BytesIO(gzipped_content),
path,
ExtraArgs={"ContentType": "text/plain"})

但在这种情况下,路径显示为完整的文件名。而不是子文件夹。如何使用变量将文件上载到子文件夹?我不能硬编码,因为我需要在循环中运行函数

您需要将路径/键插入为字符串:

bucket.upload_fileobj(
io.BytesIO(gzipped_content),
f"{year}/{month}/{day}/{fileName2}",
ExtraArgs={"ContentType": "text/plain"})

您可以使用许多字符串插值功能构建密钥,包括Python f-string:

f"{year}/{month}/{day}/{fileName2}"

相关内容

  • 没有找到相关文章

最新更新