none
Google Drive v3 - Subir archivos a la nube RRS feed

  • Pregunta

  • Buenas noches, 

    Actualmente tengo un error con "File" al momento de imprimirlo por pantalla me genera error y aparece como vacio, 

    lo que estoy intentado hacer es subir un archivo a google drive utilizando su api a traves de id y secreto, programo en Vb.net 

    Este es el codigo 

    "

      Dim service As New DriveService
        Private Sub createservice()
            Dim clientid = "xxxx"
            Dim clientsecret = "xxxx"

            Dim uc As UserCredential = GoogleWebAuthorizationBroker.AuthorizeAsync(New ClientSecrets() With {.ClientId = clientid, .ClientSecret = clientsecret}, {DriveService.Scope.Drive}, "user", CancellationToken.None).Result
            service = New DriveService(New BaseClientService.Initializer() With {.HttpClientInitializer = uc, .ApplicationName = "Google Drive"})

        End Sub


        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Dim f As New OpenFileDialog
            If f.ShowDialog = DialogResult.OK Then
                FilePath.Text = f.FileName
            Else
                Exit Sub
            End If
        End Sub

        Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
            If service.ApplicationName <> "Google Drive" Then createservice()
            Dim thefile As New Data.File
            Dim bytearry As Byte() = System.IO.File.ReadAllBytes(FilePath.Text)
            Dim stream As New System.IO.MemoryStream(bytearry)
            Dim uploadrequest As FilesResource.CreateMediaUpload = service.Files.Create(thefile, stream, thefile.MimeType)
            uploadrequest.Upload()
            Dim file As Data.File = uploadrequest.ResponseBody
            MessageBox.Show(" Upload Successful ", file.Id)"

    ------

    No se que estoy haciendo mal, pero cuando quiero el "file.ID" no me genera ningun error sin embargo reviso el google drive y no sube nada.

    domingo, 30 de junio de 2019 2:52

Todas las respuestas

  • Hola Elias Espinoza de los Monteros,

    En la siguiente línea está el problema

    Dim bytearry As Byte() = System.IO.File.ReadAllBytes(FilePath.Text)

    Tu lectura la estás haciendo por Byte, dicho así estas en el stream mandando bytes a Google drive el cual no reconoce al finalizar el stream y es por eso que no se sube nada "aparentemente" realmente la solución es sencilla, debes leer el archivo como un file no como bytes

    https://docs.microsoft.com/en-us/dotnet/api/system.io.file?view=netframework-4.8

    Y usar el método copy por ejemplo. Copy(String, String, Boolean)

    Gracias por usar los foros de TechNet.
    Erick Rivera
     ____
    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.
    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft. 
    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.
    jueves, 4 de julio de 2019 23:16