OpenStack - 检查Container C#.NET的可用性

时间:2013-08-02 03:56:20

标签: openstack rackspace-cloud rackspace

我已将openstack集成到我的.net解决方案中。我正在使用CloudFilesProvider来创建和删除容器。是否有任何规定使用C#检查容器是否存在。

我知道可以通过获取ObjectStore并查找ContainerExists属性来进行检查。但我不知道如何填补这个属性。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:3)

ObjectStore是一个枚举,用于定义IObjectStorageProvider.CreateContainer等调用返回的可能值。例如,您可以通过尝试创建您正在检查的容器来获取ObjectStore,如果容器已存在,则返回值为ContainerExists。不幸的是,你总是可以得到该调用返回的ContainerCreated,即如果你使用CreateContainer来检查容器的存在,那么即使容器在“检查”之前不存在,它也会在之后

虽然它绝对不干净,但一个选项是调用GetContainerMetadata。如果容器不存在,则调用将抛出ItemNotFoundException

答案 1 :(得分:0)

您是否偶然使用此容器作为CDN?

删除 CDN时,您还必须针对Container调用方法“DisableCDNOnContainer”。此外,如果您调用方法“ListCDNContainers”,则必须通过检查属性“CDNEnabled”过滤掉已删除 CDN容器。

这是因为删除的容器“挂起”直到它们的ttl到期。