Esempio n. 1
0
        public static void PutCORSConfiguration(CORSConfiguration configuration)
        {
            PutCORSConfigurationRequest request = new PutCORSConfigurationRequest
            {
                BucketName    = bucketName,
                Configuration = configuration
            };

            var response = client.PutCORSConfiguration(request);
        }
Esempio n. 2
0
        static async Task PutCORSConfigurationAsync(CORSConfiguration configuration)
        {
            PutCORSConfigurationRequest request = new PutCORSConfigurationRequest
            {
                BucketName    = bucketName,
                Configuration = configuration
            };

            var response = await s3Client.PutCORSConfigurationAsync(request);
        }
Esempio n. 3
0
        public async Task <IActionResult> CreateBucket([FromBody] CreateBucketRequest request)
        {
            await _s3.PutBucketAsync(request.BucketName);

            var corsConfigurationRequest = new PutCORSConfigurationRequest
            {
                BucketName    = request.BucketName,
                Configuration = new CORSConfiguration
                {
                    Rules = new List <CORSRule>
                    {
                        new CORSRule
                        {
                            AllowedOrigins = new List <string> {
                                "https://localhost:3000"
                            },
                            AllowedMethods = new List <string> {
                                "PUT", "POST", "DELETE"
                            },
                            AllowedHeaders = new List <string> {
                                "*"
                            },
                            ExposeHeaders = new List <string> {
                                "ETag"
                            }
                        },
                        new CORSRule
                        {
                            AllowedOrigins = new List <string> {
                                "*"
                            },
                            AllowedMethods = new List <string> {
                                "GET"
                            },
                        }
                    }
                }
            };
            await _s3.PutCORSConfigurationAsync(corsConfigurationRequest);

            return(new OkObjectResult(request.BucketName));
        }
Esempio n. 4
0
        /// <summary>
        /// 指定した接続情報でCORS設定を変更する。
        /// </summary>
        public async Task <bool> SetCorsConfigurationAsync(StorageConfigModel storageConfig, string corsConfigStr)
        {
            //CORS設定の更新

            PutCORSConfigurationRequest request = new PutCORSConfigurationRequest()
            {
                BucketName = storageConfig.Bucket
            };

            using (var reader = new StringReader(corsConfigStr))
            {
                var deserializer = new XmlSerializer(typeof(CORSConfiguration));
                var corsConfig   = deserializer.Deserialize(reader) as CORSConfiguration;
                request.Configuration = corsConfig;
            }

            AmazonWebServiceResponse response;

            try
            {
                var s3Client = GenerateConfig(storageConfig);
                response = await s3Client.PutCORSConfigurationAsync(request);
            }
            catch (AmazonS3Exception e)
            {
                //XMLに不備があると、例外になってしまう。
                //接続エラー(System.Net.Http.HttpRequestException)との区別はつくので、他のAmazonS3Exceptionエラーとは区別できなくなるが、まとめてcatch
                LogWarning($"CORS設定に失敗しました。Message = {e.Message}");
                return(false);
            }

            if (response.HttpStatusCode == HttpStatusCode.OK)
            {
                return(true);
            }
            else
            {
                LogWarning($"CORS設定に失敗しました。HttpStatusCode = {response.HttpStatusCode}. {response.ResponseMetadata.Metadata}");
                return(false);
            }
        }
Esempio n. 5
0
        /// <summary>
        /// Ativa regra de CORS no Bucket para permitir acesso externo via javascript.
        /// </summary>
        /// <param name="bucketName">Nome do Bucket para adicionar a regra de CORS</param>
        /// <param name="allowedOrigin">Origigem a ser ativada.</param>
        /// <returns></returns>
        public override async Task SetCorsToBucketAsync(string bucketName, string allowedOrigin)
        {
            ValidateInstance();

            // Remove configuração CORS
            var requestDelete = new DeleteCORSConfigurationRequest
            {
                BucketName = bucketName
            };
            await _client.DeleteCORSConfigurationAsync(requestDelete);

            // Cria nova configuração CORS
            var configuration = new CORSConfiguration
            {
                Rules = new List <CORSRule>
                {
                    new CORSRule
                    {
                        Id             = "enContactPutByJavascriptRule",
                        AllowedMethods = new List <string> {
                            "PUT"
                        },
                        AllowedHeaders = new List <string> {
                            "*"
                        },
                        AllowedOrigins = new List <string> {
                            allowedOrigin ?? "*"
                        }
                    },
                }
            };
            var requestCreate = new PutCORSConfigurationRequest
            {
                BucketName    = bucketName,
                Configuration = configuration
            };
            await _client.PutCORSConfigurationAsync(requestCreate).ConfigureAwait(false);
        }
 public Task <PutCORSConfigurationResponse> PutCORSConfigurationAsync(PutCORSConfigurationRequest request, CancellationToken cancellationToken = default)
 {
     throw new NotImplementedException();
 }
 public PutCORSConfigurationResponse PutCORSConfiguration(PutCORSConfigurationRequest request)
 {
     throw new NotImplementedException();
 }
Esempio n. 8
0
 public void PutCORSConfigurationAsync(PutCORSConfigurationRequest request, AmazonServiceCallback <PutCORSConfigurationRequest, PutCORSConfigurationResponse> callback, AsyncOptions options = null)
 {
     throw new System.NotImplementedException();
 }