7

我发现ActiveRecord::Base.transaction在复杂的方法中非常有效。

我想知道是否可以在以下事务中从 AWS S3 上传/删除文件:

S3Object.transaction do
   # write into files
   # raise an exception
end

引发异常后,每个操作都应在 S3 上回滚。这可能与S3Object吗?

4

1 回答 1

12

尽管 S3 API 具有批量删除功能,但它不支持事务,因为每个删除操作都可以独立于其他操作成功/失败。

该 API 不提供任何批量上传功能(通过 PUT 或 POST),因此每个上传操作都是通过独立的 API 调用完成的,该调用可能成功也可能失败。

因此,Ruby API 客户端或任何其他 API 客户端无法为 S3 操作提供任何事务支持。

于 2013-08-01T10:41:12.200 回答