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

如何使用Boto3删除AWS S3存储桶目录下的对象?

解决S3删除目录下文件的问题

嘿,我来帮你搞定这个问题!其实你遇到的核心点是对S3的“目录”概念理解有点偏差——S3并没有真正的物理目录,那些看起来像文件夹的路径,其实都是对象键(Object Key)的一部分。

你之前的思路是对的,只需要把完整的对象键作为第二个参数传给s3.Object()就行,可能是你之前的参数写法有小问题?比如不小心加了多余的斜杠或者路径拼写错误?

给你修正后的完整代码:

import boto3
session = boto3.Session(
 aws_access_key_id="id",
 aws_secret_access_key="secret",
 region_name="us-east-1"
)
s3 = session.resource("s3")
# 第二个参数传入完整的对象键:media/private/test.txt
obj = s3.Object("mybucket", "media/private/test.txt")
obj.delete()

如果还是没生效,可以检查这几个细节:

  • 确认对象键完全正确:S3的对象键区分大小写,同时不要加开头的斜杠(比如不要写成/media/private/test.txt),因为S3的对象键不需要以斜杠开头。
  • 确认目标对象确实存在于mybucket桶中:可以通过AWS控制台或者调用head_object方法校验对象是否存在。
  • 确认你的AWS凭证具备s3:DeleteObject权限,有权限操作这个对象。

另外,你也可以用boto3客户端(client)的方式实现删除,写法稍有不同但效果一致:

s3_client = session.client("s3")
s3_client.delete_object(Bucket="mybucket", Key="media/private/test.txt")

内容的提问来源于stack exchange,提问作者Marco Herrarte

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:14:18