AWS .NET SDK работает для DynamoDB, а не для S3

Я запускаю приложение .NET Core Web API, где я инициализирую DynamoDB и S3 с конечными точками localstack:

services.AddSingleton<IAmazonDynamoDB>(sp =>
{
      var clientConfig = new AmazonDynamoDBConfig { ServiceURL = "http://localhost:4569" };
      return new AmazonDynamoDBClient(clientConfig);
});
services.AddSingleton<IAmazonS3>(sp =>
{
       var clientConfig = new AmazonS3Config { ServiceURL = "http://localhost:4572" };
       return new AmazonS3Client(clientConfig);
});

Я запустил службы DynamoDB и S3 в локальном стеке. Когда я пытаюсь использовать службы (уважительно через клиентов IAmazonDynamoDB и IAmazonS3), DynamoDB работает как шарм, в то время как S3 выдает исключение "имя ​​узла или имя сервера предоставлено или неизвестно". Есть идеи, что не так?

Я запускаю localstack из последнего образа докера, если это может быть связано.


person Yuriy Galanter    schedule 26.02.2020    source источник


Ответы (1)


Выяснил здесь , что нужно добавить ForcePathStyle = true

Итак, в основном для конфигурации S3, которая работает:

services.AddSingleton<IAmazonS3>(sp =>
{
   var clientConfig = 
       new AmazonS3Config { ServiceURL = "http://localhost:4572", ForcePathStyle = true };
   return new AmazonS3Client(clientConfig);

});

person Yuriy Galanter    schedule 26.02.2020