** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Subir archivos por vba a la nube con dropbox
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoSubir archivos por vba a la nube con dropbox

 Responder Responder Página  <12
Autor
Mensaje
emiliove Ver desplegable
Moderador
Moderador


Unido: 16/Junio/2009
Localización: Mexico
Estado: Sin conexión
Puntos: 4927
Enlace directo a este mensaje Enviado: 08/Mayo/2019 a las 17:14
Hola Rokoko

El 200 es que la petición que estas haciendo fue correcta, y te va a devolver la respuesta.


Saludos.


Editado por emiliove - 08/Mayo/2019 a las 17:16
Arriba
rokoko Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 16/Febrero/2008
Localización: Pamplona
Estado: Sin conexión
Puntos: 2008
Enlace directo a este mensaje Enviado: 08/Mayo/2019 a las 21:19
Hola

Probando con algunos archivos de uno 25mb me a dado el error en esta linea  req.send (result)
-Se supero el tiempo de espera para esta operacion  error -21470122894(80072ee2)

Se puede solucionar esto, modificar el limite de tiempo o alguna otra solucion??

Saludos
Arriba
pitxiku Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 27/Septiembre/2017
Localización: En mi casa
Estado: Sin conexión
Puntos: 1008
Enlace directo a este mensaje Enviado: 09/Mayo/2019 a las 19:27
Puede que en vez de usar el método upload, tengas que usar una sesión para subir archivos grandes:

- https://www.dropbox.com/developers/documentation/http/documentation#files-upload_session-start
Arriba
rokoko Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 16/Febrero/2008
Localización: Pamplona
Estado: Sin conexión
Puntos: 2008
Enlace directo a este mensaje Enviado: 09/Mayo/2019 a las 20:05
Publicado originalmente por pitxiku pitxiku escribió:

Puede que en vez de usar el método upload, tengas que usar una sesión para subir archivos grandes:

- https://www.dropbox.com/developers/documentation/http/documentation#files-upload_session-start


Justo ahora estaba probando y he conseguido subir un archivo de 144mbm en principio mas que suficiente para lo que quiero. He puesto esta linea.

Set req = CreateObject("WINHTTP.WinHTTPRequest.5.1")
req.SetTimeouts 30000, 1000000, 1000000, 1000000
req.Open "POST", "https://content.dropboxapi.com/2/files/upload", False
ResolveTimeout,ConnectTimeout,SendTimeout,ReceiveTimeout

Son tiempos en milisegundos, lo que no he encontrado es que limites se pueden poner.. Y esa linea tiene que ir antes de Open

Arriba
pitxiku Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 27/Septiembre/2017
Localización: En mi casa
Estado: Sin conexión
Puntos: 1008
Enlace directo a este mensaje Enviado: 09/Mayo/2019 a las 22:43
Entiendo que los tiempos que has puesto son más que suficientes (son casi 3 horas).

Menos el tiempo del envío del archivo(send), para los demás con un par de segundos debe sobrar.

Si el archivo no pasa de 150 mb no pasa nada. Pero si pasa, entiendo que sí debes usar una sesión.
Arriba
guarracuco Ver desplegable
Moderador
Moderador
Avatar

Unido: 24/Abril/2004
Localización: EEUU
Estado: Sin conexión
Puntos: 2992
Enlace directo a este mensaje Enviado: 10/Mayo/2019 a las 01:24
Quizas sea suficiente el cambiar el parametro false por true.
Esto indica que la solicitud se haga en modo asincrono de manera que no se detiene la ejecucion de codigo vba. Podrias colocar un reloj indicando que el proceso se esta ejecutando.
Hay un evento que te indica que el proceso finalizo. Utilizalo para detener el reloj.
https://tucondominioaldia.net
Arriba
rokoko Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 16/Febrero/2008
Localización: Pamplona
Estado: Sin conexión
Puntos: 2008
Enlace directo a este mensaje Enviado: 10/Mayo/2019 a las 08:13
Publicado originalmente por guarracuco guarracuco escribió:

Quizas sea suficiente el cambiar el parametro false por true.
Esto indica que la solicitud se haga en modo asincrono de manera que no se detiene la ejecucion de codigo vba. Podrias colocar un reloj indicando que el proceso se esta ejecutando.
Hay un evento que te indica que el proceso finalizo. Utilizalo para detener el reloj.


He cambiado el parametro false a true en esta linea  req.Open "POST", "https://content.dropboxapi.com/2/files/upload", True   pero me suelta el error  "El dato necesario para completar esta operacion no esta disponible ahora"


Publicado originalmente por pitxiku pitxiku escribió:

Entiendo que los tiempos que has puesto son más que suficientes (son casi 3 horas).

Menos el tiempo del envío del archivo(send), para los demás con un par de segundos debe sobrar.

Si el archivo no pasa de 150 mb no pasa nada. Pero si pasa, entiendo que sí debes usar una sesión.

Pues si no pongo en todos parametro (3 ultimos) un tiempo generoso  me dice que se ha agotado el tiempo.


Mañana lo probare ya en realidad en el trabajo, y ya os contare. Deberia de ir bien, ademas los archivos a subir no son muy grandes, mas bien pequeños

Saludos
Arriba
guarracuco Ver desplegable
Moderador
Moderador
Avatar

Unido: 24/Abril/2004
Localización: EEUU
Estado: Sin conexión
Puntos: 2992
Enlace directo a este mensaje Enviado: 10/Mayo/2019 a las 14:36
CUando se utiliza en modo asincrono, hay que agregar luego de la linea send:
obj.waitForResponse
https://tucondominioaldia.net
Arriba
rokoko Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 16/Febrero/2008
Localización: Pamplona
Estado: Sin conexión
Puntos: 2008
Enlace directo a este mensaje Enviado: 12/Mayo/2019 a las 10:32
Hola

Lo he probado en el trabajo en 3 bases de datos y funciona perfectamente, la verdad que es una gozada hacer copias de seguridad asi. O para subir a Dropbox lo que quieras.
Con este codigo estas limitado en teoria a 150 mb, pero modificandolo se podria subir archivos mas grandes.

Como resumen

https://www.dropbox.com/developers-v1/core/docs

https://www.dropbox.com/developers

https://dropbox.github.io/dropbox-api-v2-explorer/#files_upload

https://www.dropbox.com/developers/documentation/http/documentation

http://www.jose.it-berater.org/winhttp/settimeouts_method.htm

Y un ejemplo con varias opciones
https://www.dropbox.com/s/dda5vkcbw2hal2m/ArchivosNube.rar?dl=0

Son 3 parametros los que hay que pasar, el token de dropbox, la ruta dropbox con archivo y extension, y ruta del archivo a subir con archivo y extension.


Se puede cerra, muchas gracias a todos.



Editado por rokoko - 12/Mayo/2019 a las 10:34
Arriba
rokoko Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 16/Febrero/2008
Localización: Pamplona
Estado: Sin conexión
Puntos: 2008
Enlace directo a este mensaje Enviado: 18/Mayo/2019 a las 17:47
Cerrar el hilo por favor

Saludos
Arriba
 Responder Responder Página  <12
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable