Exemple #1
0
        // 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}");
            }
        }
Exemple #2
0
        // 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;
     }
 }
Exemple #4
0
        // 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}");
            }
        }
Exemple #5
0
        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();
        }
Exemple #6
0
        /// <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;
            }
        }
Exemple #7
0
        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");
        }