2013-08-02 21 views
2

我已經將openstack集成到我的.net解決方案中。我正在使用CloudFilesProvider創建和刪除容器。是否有任何規定使用C#檢查容器的存在。OpenStack - 檢查Container C#.NET的可用性

我知道可以通過獲取ObjectStore來查找並找到ContainerExists屬性。但我不知道如何獲得這個屬性填充。

任何幫助將不勝感激。

+0

我已經使用了您提供的第二個選項,檢查createContainer並通過選項 –

回答

3

ObjectStore是一個枚舉,它定義了像IObjectStorageProvider.CreateContainer這樣的調用返回的可能值。例如,您可以通過嘗試創建來獲得ObjectStore您正在檢查的容器,如果該容器已存在,則返回值爲ContainerExists。不幸的是,如果你使用CreateContainer來檢查容器的存在,那麼即使容器在「檢查」之前不存在,它也會隨後返回ContainerCreated

雖然它絕對不乾淨,但有一個選項叫GetContainerMetadata。如果容器不存在,該調用將拋出一個ItemNotFoundException

+0

進行檢查。所以您在說我已經提到createContainer方法僅用於檢查容器的存在。 –

+0

不,我說你似乎應該使用'GetContainerMetadata'來檢查存在。如果該方法拋出一個'ItemNotFoundException',則該容器不存在。 –

0

您是否偶然使用此Container作爲CDN?

正在刪除 CDN時,您還必須對容器調用方法「DisableCDNOnContainer」。另外,如果您調用方法「ListCDNContainers」,則必須通過檢查屬性「CDNEnabled」來過濾掉已刪除的 CDN容器。

這是因爲刪除的容器「滯留」直到它們的ttl到期。