我发现ActiveRecord::Base.transaction
在复杂方法中非常有效。
我想知道是否可以在以下事务中从AWS S3上传/删除文件:
S3Object.transaction do
# write into files
# raise an exception
end
引发异常后,应在S3上回滚每个操作。这可能是S3Object吗?
答案 0 :(得分:8)
虽然S3 API具有批量删除功能,但它不支持事务,因为每个删除操作都可以独立于其他删除操作成功/失败。
API不提供任何批量上传功能(通过PUT或POST),因此每次上传操作都是通过可以成功或失败的独立API调用完成的。
因此,Ruby API客户端或任何其他API客户端无法为S3操作提供任何事务支持。