public async Task CreateBucketAsync(BucketSettings settings, CreateBucketOptions options) { var uri = GetUri(); Logger.LogInformation($"Attempting to create bucket with name {settings.Name} - {uri}"); try { // create bucket var content = new FormUrlEncodedContent(GetBucketSettingAsFormValues(settings)); var result = await _client.PostAsync(uri, content, options.CancellationToken).ConfigureAwait(false); if (result.StatusCode == HttpStatusCode.BadRequest) { var json = await result.Content.ReadAsStringAsync().ConfigureAwait(false); if (json.IndexOf("Bucket with given name already exists", StringComparison.InvariantCultureIgnoreCase) >= 0) { throw new BucketAlreadyExistsException(settings.Name); } } result.EnsureSuccessStatusCode(); } catch (BucketAlreadyExistsException) { Logger.LogError($"Failed to create bucket with name {settings.Name} because it already exists"); throw; } catch (Exception exception) { Logger.LogError(exception, $"Failed to create bucket with name {settings.Name} - {uri}"); throw; } }
public static Task CreateBucketAsync(this IBucketManager bucketManager, BucketSettings settings, Action <CreateBucketOptions> configureOptions) { var options = new CreateBucketOptions(); configureOptions(options); return(bucketManager.CreateBucketAsync(settings, options)); }