LifecycleConfiguration - предоставленный вами XML не был правильно сформирован или не соответствовал нашей опубликованной схеме. - PullRequest
0 голосов
/ 13 июля 2020

Я использую AWSSDK.dll версии 2.1.3.0. Я пытаюсь добавить новое правило жизненного цикла. Вот код.

IAmazonS3 _s3Client = new AmazonS3Client("A*****************Z", "a*************b", bucketRegion);

        // Retrieve current configuration
        var configuration =   _s3Client.GetLifecycleConfiguration(
       new GetLifecycleConfigurationRequest
       {
           BucketName = bucketName
       }).Configuration;

        
        
            //Adding new Rule
            configuration.Rules.Add(new LifecycleRule
            {
                
                Id = "ATam",  
                Prefix = "ATam/PanCake QA/Avaniti/",
                Expiration = new LifecycleRuleExpiration()
                {
                    Days = 3650
                },
                Transition = new LifecycleTransition()
                {
                    StorageClass = S3StorageClass.Glacier,
                    Days = 14
                },
                Status = LifecycleRuleStatus.Enabled,
            });



        PutLifecycleConfigurationRequest request = new PutLifecycleConfigurationRequest
        {
            BucketName = bucketName,
            Configuration = configuration
        };
        var response = _s3Client.PutLifecycleConfiguration(request);

Но я получаю это исключение. Необработанное исключение типа «Amazon.S3. AmazonS3Exception 'произошла в AWSSDK.dll Дополнительная информация: XML, который вы предоставили, не был правильно сформирован или не прошел проверку на соответствие нашей опубликованной схеме. Кто-нибудь может сообщить мне, где я ошибаюсь. Заранее спасибо

1 Ответ

0 голосов
/ 24 июля 2020

Необходимо указать для свойств LifecycleTransition Дни и Класс хранения.

LifecycleConfiguration newConfiguration = new LifecycleConfiguration
    {
        Rules = new List<LifecycleRule>
        {
            new LifecycleRule
                    {
                         Id = "some id here",
                         Filter = new LifecycleFilter()
                         {
                             LifecycleFilterPredicate = new LifecyclePrefixPredicate()
                             {
                                
                             }
                         },
                         Status = LifecycleRuleStatus.Enabled,
                         Transitions = new List<LifecycleTransition>
                         {
                              new LifecycleTransition
                              {
                                   Days = 0,
                                   StorageClass = S3StorageClass.Glacier
                              }
                          },
                         Expiration = new LifecycleRuleExpiration()
                         {
                               Days = 1
                         }
                    }
        }
    };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...