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