/// <summary> /// コンテナ削除 /// </summary> /// <param name="containerName"></param> /// <returns></returns> public async Task <HttpResponseMessage> DeleteContainer(string containerName) { var result = await WebExtension.Delete($"{BaseUrl}/{containerName}", authToken : KeyStone.Token); if (result.StatusCode != System.Net.HttpStatusCode.NoContent) { throw new HttpRequestException(await result.Content.ReadAsStringAsync()); } return(result); }
/// <summary> /// アカウントクォータ設定 /// </summary> /// <returns></returns> public async Task SetQuota(int gigabyte) { var result = await WebExtension.Post(BaseUrl, null, authToken : KeyStone.Token , headers : new Dictionary <string, string>() { { "X-Account-Meta-Quota-Giga-Bytes", $"{gigabyte}" }, }); var str = await result.Content.ReadAsStringAsync(); if (result.StatusCode != System.Net.HttpStatusCode.NoContent) { throw new HttpRequestException(await result.Content.ReadAsStringAsync()); } }
public async Task <HttpResponseMessage> DeleteObject(string containerName, string fileName, IDictionary <string, string> headers = null) { var result = await WebExtension.Delete($"{BaseUrl}/{containerName}/{fileName}", authToken : KeyStone.Token, headers : headers); switch (result.StatusCode) { case HttpStatusCode.NoContent: case HttpStatusCode.NotFound: break; default: throw new HttpRequestException(await result.Content.ReadAsStringAsync()); } return(result); }
/// <summary> /// オブジェクトを取得します /// </summary> /// <param name="path"></param> /// <param name="headers"></param> /// <returns></returns> public async Task <HttpResponseMessage> GetObject(string path, IDictionary <string, string> headers = null) { var result = await WebExtension.Get($"{BaseUrl}/{path}", authToken : KeyStone.Token, headers : headers); switch (result.StatusCode) { case HttpStatusCode.OK: case HttpStatusCode.NotFound: break; default: throw new HttpRequestException(await result.Content.ReadAsStringAsync()); } return(result); }
/// <summary> /// コンテナ作成 /// </summary> /// <returns></returns> public async Task <HttpResponseMessage> CreateContainer(string containerName, IDictionary <string, string> headers = null) { var result = await WebExtension.Put($"{BaseUrl}/{containerName}", null, authToken : KeyStone.Token , headers : headers); switch (result.StatusCode) { case HttpStatusCode.Accepted: case HttpStatusCode.Created: case HttpStatusCode.NoContent: break; default: throw new HttpRequestException(await result.Content.ReadAsStringAsync()); } return(result); }
/// <summary> /// ファイルをアップロードします /// </summary> /// <param name="containerName"></param> /// <param name="filePath"></param> /// <param name="contentType"></param> /// <param name="headers"></param> /// <returns></returns> public async Task <HttpResponseMessage> PutObject(string containerName, string filePath, string dstName = null, IDictionary <string, string> headers = null) { if (dstName == null) { dstName = Path.GetFileName(filePath); } var result = await WebExtension.PutFile($"{BaseUrl}/{containerName}/{dstName}", filePath, authToken : KeyStone.Token, headers : headers); switch (result.StatusCode) { case HttpStatusCode.Created: break; default: throw new HttpRequestException(await result.Content.ReadAsStringAsync()); } return(result); }
/// <summary> /// 認証アクセスが正常にできるか /// </summary> /// <returns></returns> public async Task <ContainerInfo[]> GetContainerList() { var result = await WebExtension.Get(BaseUrl, KeyStone.Token); switch (result.StatusCode) { case HttpStatusCode.NoContent: return(new ContainerInfo[] { }); case HttpStatusCode.OK: break; default: throw new HttpRequestException(await result.Content.ReadAsStringAsync()); } var list = JsonConvert.DeserializeObject <ContainerInfo[]>(await result.Content.ReadAsStringAsync()); return(list); }
/// <summary> /// オブジェクト一覧 /// </summary> /// <param name="containerName"></param> /// <param name="headers"></param> /// <returns></returns> public async Task <ObjectInfo[]> GetObjectList(string containerName, IDictionary <string, string> headers = null) { var result = await WebExtension.Get($"{BaseUrl}/{containerName}", authToken : KeyStone.Token, headers : headers); switch (result.StatusCode) { case HttpStatusCode.NoContent: return(new ObjectInfo[] { }); case HttpStatusCode.OK: break; default: throw new HttpRequestException(await result.Content.ReadAsStringAsync()); } var list = JsonConvert.DeserializeObject <ObjectInfo[]>(await result.Content.ReadAsStringAsync()); return(list); }
public static async Task <KeyStone> Authenticate(string url, string tenant, string user, string pass) { var data = new JObject() as dynamic; data.auth = new JObject() as dynamic; data.auth.tenantName = tenant; data.auth.passwordCredentials = new JObject() as dynamic; data.auth.passwordCredentials.username = user; data.auth.passwordCredentials.password = pass; HttpResponseMessage result = await WebExtension.Post(url, data, authToken : null); var content = await result.Content.ReadAsStringAsync(); if (result.StatusCode != System.Net.HttpStatusCode.OK) { throw new HttpRequestException(content); } return(new KeyStone() { AuthData = JsonConvert.DeserializeObject <KeyStoneResult>(content), }); }