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

如何在开启版本控制的AWS S3桶中替换并删除最新版本对象

如何在开启版本控制的S3桶中直接替换并删除错误的最新版本对象

开启版本控制的S3桶默认不支持通过put操作直接覆盖现有版本——任何新的put请求都会生成一个新的版本,旧版本会被保留。要实现「替换最新错误版本且不保留它」,你需要分两步操作:先上传新对象生成新版本,再永久删除旧的错误版本。

你提供的代码里用version=latest_version是无效的,这个参数不是用来指定覆盖目标版本的,put操作依然会创建新版本。

正确实现代码示例

import boto3

# 初始化S3资源
s3 = boto3.resource('s3')
bucket = '你的桶名'
output_key = '你的对象键'
body = b'你的新内容'

# 获取当前错误的最新版本ID
obj = s3.Object(bucket, output_key)
error_version_id = obj.version_id

# 1. 上传新对象,自动生成新的最新版本
obj.put(Body=body)

# 2. 永久删除错误的旧版本(注意指定VersionId,不然只会生成删除标记)
obj.delete(VersionId=error_version_id)

关键注意事项

  • 必须确保你的IAM身份拥有s3:PutObject(上传对象)和s3:DeleteObjectVersion(删除对象版本)权限
  • 如果用S3 Client而非Resource,逻辑一样:调用put_object上传,再用delete_object指定VersionId删除旧版本

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 19:04:57