AWS Загрузка файла S3 с помощью VB.NET - PullRequest
0 голосов
/ 09 мая 2020

Я пытаюсь использовать образец кода, предоставленный AWS, для загрузки файла на S3 из веб-приложения VB. net. Я преобразовал пример кода C# в VB и сохранил его в отдельном файле под названием UploadToS3.vb. Проблема, с которой я сталкиваюсь, заключается в том, что я не понимаю, как передать файл в файл UploadToS3.vb и загрузить его.

На интерфейсе веб-приложения я использую следующее, чтобы выбрать файл и отправьте:

    <form id="form1" runat="server">
    <div>
        <asp:Label ID="lblUpload" runat="server" Text="UPLOAD"></asp:Label><br />
        <asp:FileUpload ID="FileUpload1" runat="server" /><br />
        <asp:Button ID="btnSubmit" runat="server" Text="Submit" />
    </div>
</form>

Код позади файла:

Namespace Amazon.DocSamples.S3
Class UploadFileMPUHighLevelAPITest
    Private Const bucketName As String = "webapp.company.com"
    Private Const keyName As String = "*** provide a name for the uploaded object ***"
    Private Const filePath As String = "*** provide the full path name of the file to upload ***"
    Private Shared ReadOnly bucketRegion As RegionEndpoint = RegionEndpoint.USEast1
    Private Shared s3Client As IAmazonS3

    Public Shared Sub Main()
        s3Client = New AmazonS3Client(bucketRegion)
        UploadFileAsync().Wait()
    End Sub

    Private Shared Async Function UploadFileAsync() As Task
        Try
            Dim fileTransferUtility = New TransferUtility(s3Client)
            Await fileTransferUtility.UploadAsync(filePath, bucketName)
            Console.WriteLine("Upload 1 completed")
            Await fileTransferUtility.UploadAsync(filePath, bucketName, keyName)
            Console.WriteLine("Upload 2 completed")

            Using fileToUpload = New FileStream(filePath, FileMode.Open, FileAccess.Read)
                Await fileTransferUtility.UploadAsync(fileToUpload, bucketName, keyName)
            End Using

            Console.WriteLine("Upload 3 completed")
        Catch e As AmazonS3Exception
            Console.WriteLine("Error encountered on server. Message:'{0}' when writing an object", e.Message)
        Catch e As Exception
            Console.WriteLine("Unknown encountered on server. Message:'{0}' when writing an object", e.Message)
        End Try
    End Function
End Class
End Namespace

Пример кода из AWS: https://docs.aws.amazon.com/AmazonS3/latest/dev/HLuploadFileDotNet.html

Более подробные c вопросы: Как выглядит значение для "filepath"? Просто название папки в ведре S3? Требуется ли имя ключа Private Const в виде строки ..., если по умолчанию используется имя загруженного файла? Что мне добавить в событие нажатия кнопки отправки, чтобы вызвать загрузку S3?

Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 09 мая 2020

Нет, я думаю, что путь к файлу - это путь к файлу, в котором функция UploadAsyn c получит файл для загрузки на S3.

Как вы можно сделать это, приложение vb должно быть на сервере на хостинге, ну, когда вы загружаете, я думаю, вам нужно сохранить файл во временную папку на вашем сервере, а затем с этой клятвой использовать функцию S3 UploadAsyn c, чтобы загрузить файл на S3.

...