Openstack API - 动态大对象 (DLO) 和静态大对象 (SLO) 之间的区别

Openstack API - Difference between Dynamic Large Objects (DLO) & Static Large Objects (SLO)

我想使用 openstack API 将大型对象上传到我的对象存储。 我发现我可以用大对象来做到这一点。 API 中描述了两个不同的对象,静态大对象 (SLO) 和动态大对象 (DLO)。对于两者,我都需要上传所有部分,然后是一个清单,其中包含对这些部分的引用。

现在我的问题是:这两者有什么区别?我应该使用哪个?我的文件不会改变它们的大小。上传一次,然后通常不会更改。所以我想使用 SLO?

多谢指教!

我从 Oracle 找到了一个解决方案:Using Oracle Storage Cloud Service

这两者之间的区别在于 SLO 的 Manifest 文件包含所有 contailer/file 段的名称。这些段可以位于不同的位置。所以它被称为 static 因为所有文件都是初始上传的并且不会改变。

DLO 的清单文件为空。所有段必须与清单文件位于同一容器中。此文件动态确定要下载的大对象的部分。

I've written a blog post on Object Storage manifests for the Bluemix service @ http://blog.ibmjstart.net/2016/04/14/e-pluribus-unum-creating-openstack-manifest-objects-in-ibm-bluemix-object-storage/ that may also help shed more light on their usefulness.

摘录:

  • 静态大对象 (SLO) – 依赖于用户提供的清单文件。当开发人员想要“混搭”来自多个容器的对象并在自生成的清单文件中引用它们时的用例是有利的。这使您可以在清单被接受后立即访问级联对象。将片段上传到单独的容器中可以提高并发上传速度。不利的一面是,串联对象的定义被冻结,直到清单被替换。
  • 动态大对象 (DLO) – 依赖于容器列表零字节清单文件。对于开发人员可能随时从清单中 add/remove 分段(例如容器中的对象)的用例来说是有利的。一些缺点包括依赖于最终一致的容器列表,这意味着在访问完整的串联对象可用之前可能会有一些延迟。还要求所有段都在一个容器中,这会限制并发上传速度。

根据您的用例,我同意 SLO 可能最有意义。