// Set bucket policy public async static Task Run(MinioClient minio, string bucketName = "my-bucket-name") { try { Console.WriteLine("Running example for API: DeletePolicyAsync"); var args = new RemovePolicyArgs() .WithBucket(bucketName); await minio.RemovePolicyAsync(args); Console.WriteLine($"Policy previously set for the bucket {bucketName} removed."); try { var getArgs = new GetPolicyArgs() .WithBucket(bucketName); string policy = await minio.GetPolicyAsync(getArgs); } catch (UnexpectedMinioException e) { Console.WriteLine($"GetPolicy operation for {bucketName} result: {e.ServerMessage}"); } Console.WriteLine(); } catch (Exception e) { Console.WriteLine($"[Bucket] Exception: {e}"); } }
// Get a policy for given bucket private async static Task GetBucketPolicy_Test1(MinioClient minio) { Console.Out.WriteLine("Test1: GetPolicyAsync "); string bucketName = GetRandomName(15); string objectName = GetRandomName(10); string fileName = CreateFile(1 * MB); await Setup_Test(minio, bucketName); await minio.PutObjectAsync(bucketName, objectName, fileName); await minio.SetPolicyAsync(bucketName, objectName.Substring(5), PolicyType.READ_ONLY); PolicyType policy = await minio.GetPolicyAsync(bucketName, objectName.Substring(5)); Assert.IsTrue(policy.Equals(PolicyType.READ_ONLY)); await minio.RemoveObjectAsync(bucketName, objectName); await TearDown(minio, bucketName); File.Delete(fileName); Console.Out.WriteLine("Test1: GetPolicyAsync Complete"); }
//Get bucket policy. public Task <String> GetBucketPolicyAsync(string bucketName) { try { var outStr = minio.GetPolicyAsync(bucketName); return(outStr); } catch (MinioException e) { throw; } }
// Get bucket policy public async static Task Run(MinioClient minio, string bucketName = "my-bucket-name", string prefix = "") { try { Console.WriteLine("Running example for API: GetPolicyAsync"); string policyJson = await minio.GetPolicyAsync(bucketName); Console.WriteLine($"Current Policy is {policyJson} for bucket {bucketName}"); Console.WriteLine(); } catch (Exception e) { Console.WriteLine($"[Bucket] Exception: {e}"); } }
static void Main(string[] args) { try { var bucketList = minio.ListBucketsAsync().Result; //获取分类列表 foreach (Bucket bucket in bucketList.Buckets) { Console.WriteLine("-" + bucket.Name + " " + bucket.CreationDateDateTime); //获取文件列表 minio.ListObjectsAsync(bucket.Name).Subscribe(new MyObserver()); } Console.Read(); //上传文件 var bucketName = bucketList.Buckets.FirstOrDefault().Name; /* * * var fileName = "test.txt"; * var filePath = @"D:\MinIO\test\test.txt"; * var contentType = ""; * minio.PutObjectAsync(bucketName, fileName, filePath).GetAwaiter().GetResult(); * Console.WriteLine("Successfully uploaded " + fileName); */ //bucket policy var policy = minio.GetPolicyAsync(bucketName).Result; Console.WriteLine(policy); } catch (Exception ex) { Console.WriteLine(ex.ToString()); } Console.Read(); }
/// <summary> /// 获取存储桶的权限 /// </summary> /// <param name="bucketName">存储桶名称。</param> /// <returns></returns> public async Task <PolicyInfo> GetPolicyAsync(string bucketName) { try { if (string.IsNullOrEmpty(bucketName)) { throw new ArgumentNullException(nameof(bucketName)); } var args = new GetPolicyArgs() .WithBucket(bucketName); string policyJson = await _client.GetPolicyAsync(args); if (string.IsNullOrEmpty(policyJson)) { throw new Exception("Result policy json is null."); } return(JsonUtil.DeserializeObject <PolicyInfo>(policyJson)); } catch (MinioException ex) { if (!string.IsNullOrEmpty(ex.Message) && ex.Message.ToLower().Contains("the bucket policy does not exist")) { return(new PolicyInfo() { Version = _defaultPolicyVersion, Statement = new List <StatementItem>() }); } else { throw; } } catch { throw; } }
private async static Task PresignedPostPolicy_Test1(MinioClient minio) { Console.Out.WriteLine("Test1: PresignedPostPolicyAsync"); string bucketName = GetRandomName(15); string objectName = GetRandomName(10); string fileName = CreateFile(1 * MB); try { await Setup_Test(minio, bucketName); await minio.PutObjectAsync(bucketName, objectName, fileName); // Generate presigned post policy url PostPolicy form = new PostPolicy(); DateTime expiration = DateTime.UtcNow; form.SetExpires(expiration.AddDays(10)); form.SetKey(objectName); form.SetBucket(bucketName); var pairs = new List <KeyValuePair <string, string> >(); string url = "https://s3.amazonaws.com/" + bucketName; Tuple <string, System.Collections.Generic.Dictionary <string, string> > policyTuple = await minio.PresignedPostPolicyAsync(form); var httpClient = new HttpClient(); using (var stream = File.OpenRead(fileName)) { MultipartFormDataContent multipartContent = new MultipartFormDataContent(); multipartContent.Add(new StreamContent(stream), fileName, objectName); multipartContent.Add(new FormUrlEncodedContent(pairs)); var response = await httpClient.PostAsync(url, multipartContent); response.EnsureSuccessStatusCode(); } // Validate PolicyType policy = await minio.GetPolicyAsync(bucketName, objectName.Substring(5)); Assert.AreEqual(policy.GetType(), PolicyType.READ_ONLY); await minio.RemoveObjectAsync(bucketName, objectName); await TearDown(minio, bucketName); File.Delete(fileName); } catch (Exception e) { Console.Out.WriteLine("Exception ", e.Message); } Console.Out.WriteLine("Test1: PresignedPostPolicyAsync Complete"); await minio.RemoveObjectAsync(bucketName, objectName); await TearDown(minio, bucketName); File.Delete(fileName); Console.Out.WriteLine("Test1: PresignedPostPolicyAsync Complete"); }