示例#1
0
        /// <summary>
        /// Create bucket
        /// </summary>
        /// <param name="bucketName">Bucket name - Validation: lower case alpha numeric characters plus dots.</param>
        /// <returns></returns>
        /// <exception cref="BucketNameIsNotValidException">Thrown when bucket name is invalid.</exception>
        /// <exception cref="BucketExistsException">Thrown when bucket already exists with this name.</exception>
        /// <exception cref="EndpointUnreachableException">Thrown when S3 endpoint is unreachable.</exception>
        /// <exception cref="S3BaseException">Thrown when exception is not handled.</exception>
        public async Task CreateBucket(string bucketName)
        {
            try
            {
                Validation.ValidateBucketName(bucketName);

                await _requestRetryPolicy.ExecuteAsync(async() =>
                {
                    var exists = await _bucketOperationsClient.BucketExistsAsync(bucketName.ToLower());

                    if (exists)
                    {
                        throw new BucketExistsException(bucketName);
                    }

                    await _bucketOperationsClient.MakeBucketAsync(bucketName.ToLower());
                });
            }
            catch (MinioException ex) when(ex is ConnectionException ||
                                           ex is InternalServerException ||
                                           ex is InternalClientException ||
                                           ex is InvalidEndpointException
                                           )
            {
                throw new EndpointUnreachableException(_endpoint, ex.ToString());
            }
            catch (S3BaseException)
            {
                throw;
            }
            catch (Exception ex)
            {
                throw new S3BaseException(ex.Message, ex.ToString());
            }
        }
示例#2
0
        public bool Found()
        {
            var checkTask = minio.BucketExistsAsync(bucketName);

            checkTask.Wait();
            return(checkTask.Result);
        }