UploadAsync в корзину S3 из Blazor WASM вызывает ошибку 403 ForbiddenC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 UploadAsync в корзину S3 из Blazor WASM вызывает ошибку 403 Forbidden

Сообщение Anonymous »

Я пытаюсь загрузить изображения в корзину S3 из проекта Blazor WASM с помощью AWS SDK. Я могу успешно загрузить данные из приложения Windows Forms, поэтому я уверен, что доступ к моей корзине настроен правильно. Моя проблема возникает из-за отсутствия доступа к файловой структуре локального устройства, поэтому подавляющее большинство примеров выполнения загрузки с помощью C# не применимы к моей проблеме, поскольку я не могу использовать путь к файлу изображения, которое пытаюсь загрузить. Вместо этого мне нужно прочитать файл в памяти и загрузить его оттуда.
Этот код работает у меня в проекте Windows Forms:

Код: Выделить всё

using (IAmazonS3 client = new AmazonS3Client("accesskey", "secretaccesskey", s3Config))
{

TransferUtility utility = new TransferUtility(client);
TransferUtilityUploadRequest request = new TransferUtilityUploadRequest()
request.BucketName = bucketName;
request.Key = s3Filename;
request.FilePath = localFilePath;
utility.Upload(request);
}
Это аналогичный код в моем проекте Blazor WASM:

Код: Выделить всё

private async void HandleFileSelected(InputFileChangeEventArgs e)
{
IReadOnlyList selectedFiles;
selectedFiles = e.GetMultipleFiles();
foreach (var file in selectedFiles)
{
var resizedFile = await file.RequestImageFileAsync(file.ContentType, 1024, 768);

var buf = new byte[resizedFile.Size];
using (var stream = resizedFile.OpenReadStream(maxAllowedSize: 1024 * 768))
{
await stream.ReadAsync(buf); // copy the stream to the buffer

var s3Config = new AmazonS3Config
{
MaxErrorRetry = 5,
RegionEndpoint = Amazon.RegionEndpoint.EUWest1,
AllowAutoRedirect = false
};

using (IAmazonS3 client = new AmazonS3Client("access key", "secretaccesskey", s3Config))
{

TransferUtility utility = new TransferUtility(client);
TransferUtilityUploadRequest request = new TransferUtilityUploadRequest();

request.BucketName = "mybucketname";
request.Key = "image.jpg";
request.InputStream = stream;
utility.UploadAsync(request);
}
}
}
}
Я получаю запрещенную ошибку 403 в строке UploadAsync с URL-адресом «https://mybucketname.s3.eu-west-1.amazo ... pg?uploads». адрес, к которому, очевидно, запрещен доступ. На момент возникновения этой ошибки такой файл не был загружен.
Буду признателен за любые предложения, поскольку это вызывает у меня проблемы уже два дня, и я считаю, что это не так сложно проблема, как я ее нахожу...
Изменить:
Я попробовал следующий код в приложении Windows Forms, и он работает отлично . Но как только я помещаю его в Blazor, я получаю 403 запрещенные ошибки вместе с ошибкой «подпись запроса не соответствует предоставленной вами подписи».

Код: Выделить всё

public static async Task UploadFileAsync(
IAmazonS3 client,
string bucketName,
string objectName,
Stream stream)
{
var request = new PutObjectRequest
{
BucketName = bucketName,
Key = objectName,
InputStream = stream,
};

var response = await client.PutObjectAsync(request);
if (response.HttpStatusCode == System.Net.HttpStatusCode.OK)
{
Console.WriteLine($"Successfully uploaded {objectName} to {bucketName}.");
return true;
}
else
{
Console.WriteLine($"Could not upload {objectName} to {bucketName}.");
return false;
}
}
Что именно я делаю в Blazor, что вызывает такие проблемы?

Подробнее здесь: https://stackoverflow.com/questions/775 ... dden-error
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Почему мое приложение Blazor Wasm загружает 90 файлов .wasm при каждом обновлении страницы?
    Anonymous » » в форуме C#
    0 Ответы
    25 Просмотры
    Последнее сообщение Anonymous
  • IIS выдает ошибку 403 Forbidden с %5E в URL-адресе
    Anonymous » » в форуме Php
    0 Ответы
    37 Просмотры
    Последнее сообщение Anonymous
  • Почему я получаю временную ошибку 403 Forbidden при доступе к страницам, защищенным сеансом, в моем веб-приложении?
    Anonymous » » в форуме Php
    0 Ответы
    44 Просмотры
    Последнее сообщение Anonymous
  • Reddit API возвращает ошибку 403 Forbidden при запросе токена доступа
    Anonymous » » в форуме C#
    0 Ответы
    30 Просмотры
    Последнее сообщение Anonymous
  • Reddit API возвращает ошибку 403 Forbidden при запросе токена доступа
    Anonymous » » в форуме C#
    0 Ответы
    24 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»