Я разрабатываю веб-API с использованием .NET Core 2 на ноутбуке с Windows. Я пытаюсь получить доступ к своей корзине S3 и получаю сообщение об ошибке «Доступ запрещен».
Интересно то, что он работает с AWS CLI.
Мой файл appSettings.Development.json:
"AWS": {
"Profile": "my-profile",
"Region": "us-east-1"
}
Файл Startup.cs:
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
var options = Configuration.GetAWSOptions();
services.AddDefaultAWSOptions(Configuration.GetAWSOptions());
services.AddAWSService<IAmazonS3>();
}
Файл BucketController.cs:
public async Task<IEnumerable<string>> Get()
{
// List all objects
ListObjectsRequest listRequest = new ListObjectsRequest
{
BucketName = "shel-bucket"
};
ListObjectsResponse listResponse;
do
{
// Get a list of objects
listResponse = await _client.ListObjectsAsync(listRequest);
foreach (S3Object obj in listResponse.S3Objects)
{
Console.WriteLine("Object - " + obj.Key);
Console.WriteLine(" Size - " + obj.Size);
Console.WriteLine(" LastModified - " + obj.LastModified);
Console.WriteLine(" Storage class - " + obj.StorageClass);
}
// Set the marker property
listRequest.Marker = listResponse.NextMarker;
} while (listResponse.IsTruncated);
return null;
}
Я получаю сообщение об ошибке AmazonS3Exception: доступ запрещен.
Когда я делаю это из интерфейса командной строки AWS, он работает.
aws --profile my-profile s3 ls shel-bucket
PRE test1/
PRE images/
PRE projects/
PRE test4/
Мои учетные данные и файлы confil по умолчанию находятся в .aws.