我已将openstack集成到我的.net解决方案中。我正在使用CloudFilesProvider来创建和删除容器。是否有任何规定使用C#检查容器是否存在。
我知道可以通过获取ObjectStore并查找ContainerExists属性来进行检查。但我不知道如何填补这个属性。
非常感谢任何帮助。
答案 0 :(得分:3)
ObjectStore
是一个枚举,用于定义IObjectStorageProvider.CreateContainer
等调用返回的可能值。例如,您可以通过尝试创建您正在检查的容器来获取ObjectStore
,如果容器已存在,则返回值为ContainerExists
。不幸的是,你总是可以得到该调用返回的ContainerCreated
,即如果你使用CreateContainer
来检查容器的存在,那么即使容器在“检查”之前不存在,它也会在之后
虽然它绝对不干净,但一个选项是调用GetContainerMetadata
。如果容器不存在,则调用将抛出ItemNotFoundException
。
答案 1 :(得分:0)
您是否偶然使用此容器作为CDN?
当删除 CDN时,您还必须针对Container调用方法“DisableCDNOnContainer”。此外,如果您调用方法“ListCDNContainers”,则必须通过检查属性“CDNEnabled”过滤掉已删除 CDN容器。
这是因为删除的容器“挂起”直到它们的ttl到期。