это мой код:
public async Task UploadFile(string bucketName, Stream fileStream, string fileName, long fileSize, string contentType)
{
bool found = await minioClient.BucketExistsAsync(bucketName);
if (!found)
{
await minioClient.MakeBucketAsync(bucketName);
}
// Upload a file to bucket.
await minioClient.PutObjectAsync(bucketName, fileName, fileStream, fileSize, contentType);
}
куда:
BucketName : "пациенты"
stream : результирующий поток из загрузки на веб-страницу asp.net.
Размер файла: 19589050
тип содержимого: "приложение/pdf"
он отлично работает с самыми маленькими файлами PDF (40 КБ, 100 КБ), но если я пытаюсь загрузить самые большие файлы (например, 20 МБ), у меня есть это исключение:
MinIO API ответил сообщением = Рассчитанная нами подпись запроса не соответствует предоставленной вами подписи. Проверьте свой ключ и метод подписи.
ТРАССИРОВКИ СТЕКА:
в Minio.MinioClient.ParseError(ответ IRestResponse) в Minio.MinioClient.‹>c.‹.ctor>b__80_0(ответ IRestResponse) в Minio.MinioClient.HandleIfErrorResponse(ответ IRestResponse, обработчики IEnumerable`1, DateTime startTime) в Minio.MinioClient .d__84.MoveNext() --- Прекрасная отслеживание стека с предшествующей позицией голубя и создание статуса --- в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (задача задачи) в Minio.MinioClient.d__20.MoveNext() --- Прекрасная отслеживание стека с предшествующей позицией голубя и создание состояния выполнения --- в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(задача задачи) в системе .Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(задача задачи) в System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(задача задачи) в Minio.MinioClient.d__15.MoveNext() --- Прекрасная работа стек имеет прецедентное положение и создается событие --- в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) в System.Runtime.CompilerServices.TaskAwaiter .GetResult() в API.Managers.MinIOManager.d__5.MoveNext() в C:\Users\dcalzetta\source\repos\TPO_Web\API\Managers\MinIOManager.cs:riga 43 --- Прекрасная отслеживание стека в прежней позиции dove создает статус --- в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) в System.Runtime.CompilerServices.TaskAwaiter.GetResult() в API.Controllers.DocumentController.d__7.MoveNext() в C:\Users\dcalzetta\source\repos\TPO_Web\API\Controllers\DocumentController.cs:riga 288
где я ошибаюсь?
я использую сервер Docker MINIO для области разработки,
docker run -d -p 9000:9000 -v /opt/minio/data:/data --restart if-stopped -e "MINIO_ACCESS_KEY=xxxxxxx" -e "MINIO_SECRET_KEY=yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy" minio/minio server /data
в моем web.config я увеличил максимальный размер загрузки до 100 МБ,
<system.web>
<compilation debug="true" targetFramework="4.6.2" />
<httpRuntime targetFramework="4.6.1" maxRequestLength="102428" />
</system.web>
...
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="102428800" />
</requestFiltering>
</security>