Как загрузить файл в корзину s3 из razor с использованием C # (ASP.Net Ядро)

#amazon-s3 #blazor

#amazon-s3 #blazor

Вопрос:

У меня есть компонент razor, в котором есть кнопка просмотра для загрузки файла. Теперь, как мне подключить файл, загруженный в s3.

Комментарии:

1. Было бы неплохо предоставить некоторый код для загрузки файла, который у вас есть, и любой другой код, который вы пробовали для загрузки s3.

Ответ №1:

Чтобы загрузить файлы в ваше хранилище S3, вы можете использовать приведенный ниже пример кода:

Установите .net sdk из NuGet: Install-Package AWSSDK.S3

Добавьте инструкции using:

 using Amazon.S3;
using Amazon.S3.Transfer;
  

И способ загрузки файла (здесь представлены 3 варианта, скопированные из документации AWS S3)

 private static async Task UploadFileAsync()
{
    try
    {
        var fileTransferUtility = new TransferUtility(s3Client);

        // Option 1. Upload a file. The file name is used as the object key name.
        await fileTransferUtility.UploadAsync(filePath, bucketName);
        Console.WriteLine("Upload 1 completed");

        // Option 2. Specify object key name explicitly.
        await fileTransferUtility.UploadAsync(filePath, bucketName, keyName);
        Console.WriteLine("Upload 2 completed");

        // Option 3. Upload data from a type of System.IO.Stream.
        using (var fileToUpload = 
            new FileStream(filePath, FileMode.Open, FileAccess.Read))
        {
            await fileTransferUtility.UploadAsync(fileToUpload,
                                       bucketName, keyName);
        }
        Console.WriteLine("Upload 3 completed");
    }
    catch (AmazonS3Exception e)
    {
        // catch exception
    }
    catch (Exception e)
    {
        // catch exception
    }

}
  

Более подробная информация о загрузке и расширенном методе загрузки здесь.

Комментарии:

1. Это самый ясный ответ, который я нашел где-либо в Интернете, о том, как выполнить эту загрузку со страницы Razor. Однако мне это кажется неполным. Например, разве нам не нужно где-то аутентифицировать страницу, чтобы мы могли загружать в корзину S3?

2. Спасибо. Итак, существуют различные способы аутентификации. Например, вы можете пройти аутентификацию, предоставив ключ доступа и секреты, что я и делаю, но не упомянул об этом здесь.

3. Понятно, спасибо за разъяснение! Не могли бы вы указать мне на какую-нибудь документацию, в которой явно говорится о том, как это сделать таким образом?