Los commits que he hecho en el día de hoy a mi herramienta Google Drive Uploader & Explorer (7/6/2017)
Hola a todos,
En este post, les hablaré sobre algunos cambios que he hecho a mi programa Google Drive Uploader & Explorer durante el día de hoy y que se encuentran disponibles en GitHub.
Mejoras cuando añades carpetas a la lista de espera
La primera mejora que hice durante el día de hoy fue remover algunas líneas de My.Settings.Save()
, que son las líneas responsables de grabar cierta información del programa al archivo de configuración del programa que se encuentra en la carpeta AppData\Local seguido por el nombre del programa.
En la versión 1.7, que es la versión que me encuentro trabajando ahora mismo, añadí la habilidad de subir archivos a diferentes carpetas. Para hacer esto, simplemente navegas a la carpeta a la cual deseas subir tus archivos y luego los arrastras al programa. Los archivos arrastrados serán subidos a la carpeta que estabas viendo.
El problema fue que estaba llamando continuamente My.Settings.Save()
y eso hacia que el programa funcionara más lento, ya que estaba escribiendo en el archivo de configuración por cada archivo encontrado en una carpeta. Adicionalmente, estaba llamando My.Settings.Save()
innecesariamente ya que en la función DragDrop
al final la lista de espera es grabada en este archivo de configuración, así que removí algunas líneas donde llamaba a My.Settings.Save()
. El resultado es una interfaz que responde mejor.
Cambios en este commit:
Dirección del commit: https://github.com/moisespr123/GoogleDriveUploadTool/commit/a4a16ba9eead795a053d25190ec64e3830764632
Para usuarios avanzados: Cambia el tamaño del «Chunk»
Esto es en especial para aquellos que suben archivos usando el hotspot de sus celulares y tabletas, ya que puede ser que andes en un lugar donde no tengas mucha señal o el internet se ponga lento de momento. Esto lo que puede provocar es que el programa no funcione correctamente ya que pueden ocurrir «timeouts» (El tiempo para que se realize una función se termina). ¿Por qué ocurre esto? Porque antes de implementar este cambio que les mencionaré ahora, el programa estaba programado para que suba archivos en pedazos («chunks») de 1MB, y si la conexión es muy lenta, el programa intentará subir el pedazo otra vez porque se le acaba el tiempo de espera (ocurre un «timeout»).
La forma en que funciona el API de Google Drive es subiendo archivos en pedazos. El tamaño más pequeño de un pedazo es de 256KB, así que en el código, para subir los archivos en pedazos de 1MB, multiplico 256KB por 4. En el API .NET de Google Drive, el tamaño mínimo del pedazo se puede obtener usando ResumableUpload.MinimumChunkSize
, y el resultado obtenido es lo que multiplicaba por 4.
En el último commit que realizé antes de escribir este post, esto cambió un poco. Mientras el tamaño por defecto de los pedazos se mantienen en 1MB (256KB x 4 = 1MB) , el programa buscará un archivo llamado chunkmultiplier.txt
. Si este archivo existe, el programa leerá el valor del mismo. Con esto, el usuario puede esquivar el tamaño de 1MB por pedazo y usar un tamaño menor para lograr que sus archivos suban sin problemas en una conexión lenta.
Este archivo debe tener un número de 1 en adelante. Este número es multiplicado por 256KB, así que si el archivo contiene el número 8, por ejemplo, quiere decir que se multiplicará 256KB por 8, obteniendo como resultado 2MB, así que el nuevo tamaño para los pedazos será 2MB.
Si el archivo tiene 0 como su contenido, o está vacío, entonces se usará el valor por defecto de 4 (tamaño de pedazos de 1MB).
Cambios en este commit:
Dirección del commit: https://github.com/moisespr123/GoogleDriveUploadTool/commit/d22f4f9687339f8e79f9004b10589016155a6525
¡Eso es todo por este post!
Recuerden que pueden ver el código del programa aquí.