#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. Понятно, спасибо за разъяснение! Не могли бы вы указать мне на какую-нибудь документацию, в которой явно говорится о том, как это сделать таким образом?