While building a demo app on Internap’s XIPCloud, I saw unexpected URLs sent by the CSharp-Cloudfiles library. I changed the code to pass “v1.0” via the Cloudversion argument of UserCredential’s constructor (which is a questionable location in the first place). Fiddler showed that the URL didn’t change at all. Regardless of passing is a valid value (e.g., “v1.0”) for the Cloudversion argument or just an empty string, the resulting header always looks like:
GET https://auth.storage.santa-clara.internapcloudl.net/ HTTP/1.1
Why isn’t the Cloudversion appended? By grokking thru com.mosso.cloudfiles.domain.request.GetAuthentication I found this code:
var uri = string.IsNullOrEmpty(_userCredentials.AccountName) ? _userCredentials.AuthUrl : new Uri(_userCredentials.AuthUrl + “/”
+ _userCredentials.Cloudversion.Encode() + “/” + _userCredentials.AccountName.Encode() + “/auth”);
This code only includes the provided Cloudversion value when a valid AccountName has also been provided. These values seem orthogonal to me; the resulting URL should include the Cloudversion appropriately when is is provided. Since there don’t seem to be multiple cloud versions available, nor accounts available, it’s not currently a huge problem. But it’s going to bite someone eventually.