2

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

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

任何帮助将不胜感激。

4

2 回答 2

3

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

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

于 2013-08-02T12:54:06.770 回答
0

您是否偶然将这个 Container 用作 CDN?

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

这是因为已删除的容器“徘徊”直到它们的 ttl 过期。

于 2013-08-02T13:03:36.060 回答