Код: Выделить всё
using Amazon;
using Amazon.Runtime.Internal.Endpoints.StandardLibrary;
using Amazon.S3;
using Amazon.S3.Model;
using Microsoft.AspNetCore.DataProtection.KeyManagement;
using Microsoft.AspNetCore.Mvc;
using System.Runtime.CompilerServices;
namespace WebDataExporter.Controllers
{
[ApiController]
[Route("[controller]")]
public class ScraperController : ControllerBase
{
private readonly ILogger _logger;
private readonly string accessKey = Environment.GetEnvironmentVariable("AWS_ACCESS_KEY_ID");
private readonly string secretKey = Environment.GetEnvironmentVariable("AWS_SECRET_ACCESS_KEY");
private string endpointUrl = @"https://www.example.com/";
private IAmazonS3 s3Client;
public ScraperController(ILogger logger)
{
_logger = logger;
s3Client = new AmazonS3Client(accessKey, secretKey, new AmazonS3Config
{
ServiceURL = endpointUrl,
RegionEndpoint = RegionEndpoint.EUNorth1
});
}
[HttpGet(Name = "GetS3Object")]
public async Task Get()
{
const string BUCKET_NAME = "web-scraper";
// Retrieve an object from the S3 bucket
ListObjectsV2Request request = new ListObjectsV2Request
{
BucketName = BUCKET_NAME
};
ListObjectsV2Response response = await s3Client.ListObjectsV2Async(request);
S3Object[] objectsArray = response.S3Objects.ToArray();
S3Object latestObject = objectsArray.Aggregate((j, k) => k.LastModified > j.LastModified ? k : j);
var getObjectRequest = new GetObjectRequest
{
BucketName = BUCKET_NAME,
Key = latestObject.Key
};
using (var res = await s3Client.GetObjectAsync(getObjectRequest))
using (var streamReader = new StreamReader(res.ResponseStream))
{
var content = await streamReader.ReadToEndAsync();
Console.WriteLine(content);
}
return latestObject;
}
}
}
Что меня действительно интересует почему я получаю ответ «Отказано в доступе», даже после того, как в AWS все стало общедоступным?
[img]https://i. sstatic.net/CMaI2.png[/img]

Я пробовал экспериментировать с настройками AWS, а также пробовал использовать разные методы получения контента. Например: ListObjectsV2Request прошел успешно, а GetObjectAsync — нет.
Подробнее здесь: https://stackoverflow.com/questions/757 ... st-c-sharp
Мобильная версия