close

Suite de Sony Catalizador Producción 2015.1.2.177

NOTA: Este es un puesto de invitado por Mike Neumegen, co-fundador de, un CMS construido encima de Dropbox sincronización.

El uso de la API de Dropbox es una gran manera de rastrear cambios en los archivos de los usuarios. Hasta ahora, la mejor manera de recibir los cambios del archivo era para sondear la API delta tan rápido como sea posible. Con la adición de WebHooks a la API de Dropbox, hay una manera más rápida. Ahora usted puede recibir una notificación instantánea cuando un usuario cambia los archivos en su Dropbox.

Hemos estado utilizando en la nube cañón desde su beta en abril y hemos aprendido cómo aprovechar realmente ellos.

Donde la nube de Cannon utiliza WebHooks

Nube Cannon es una manera fácil de obtener en línea y sitios web actualizables para los clientes. Nuestros clientes ponen archivos de página web estática en Dropbox, que descargarlos en nuestro servidor y los convierten en un sitio web en vivo con un CMS. WebHooks son la forma más rápida y más eficiente para obtener estos archivos en nuestros servidores y mantenerlos sincronizados.

Cómo utilizar WebHooks

La creación de WebHooks es fácil. En primer lugar, se configura un punto final de la URL, que Dropbox hará una solicitud POST a sus usuarios cada vez que se actualizan los archivos. Ahora es sólo una cuestión de realizar llamadas delta en aquellos usuarios para obtener el conjunto de cambios.

El desarrollo local

Con WebHooks, Dropbox debe llamar a una dirección URL pública por lo que puede ser difícil de probar en su entorno de desarrollo local. Nos evitar esto mediante el uso de lo que expone a nuestro servidor web local en Internet. Por desgracia, esta solución no funciona para varios desarrolladores. Terminamos haciendo una aplicación Node.js para el desarrollo local que según las encuestas la API delta y simula una llamada web hook.

Validación

Usted no quiere que alguien que llame a su punto final web hook. Hay un control de seguridad que debe llevar a cabo para asegurarse de que está realmente Dropbox llamando al web hook. La parte fea de conseguir este curso es el algoritmo de hash. Aquí hay un par de ejemplos de la validación:

Rubí:

def valid_dropbox_request? (mensaje)    compendio = OpenSSL :: Digest :: SHA256.new    signature = OpenSSL :: HMAC.hexdigest (digerir, APP_SECRET, mensaje)    request.headers [ 'X-Dropbox-Firma'] == firmafin

Node.js:

var cripto = require ( 'criptográfico');función isValidRequest (mensaje, petición) {    firma var = request.headers [ 'x-dropbox en firmas'],        de hash = crypto.createHmac ( 'SHA256', APP_SECRET) .Update (mensaje) .digest ( 'Hex');    == volver firma de hash};

previsibilidad

Cuando estábamos usando el método de votación delta para actualizar los archivos de que era más fácil de predecir y controlar la carga de los servidores. Si la carga se hizo demasiado alta podíamos enlentecer la velocidad de sondeo. Con WebHooks que es mucho más difícil de predecir carga. Si 10.000 usuarios iniciar la actualización de archivos al mismo tiempo, el punto final web hook podría estar saturada de solicitudes entrantes.

Hemos reducido este riesgo mediante el procesamiento de las llamadas web hook lo más rápido posible. Esto es importante, ya que reduce la probabilidad se sobrecargará el punto final. Además, Dropbox cortará la conexión si no recibe una respuesta dentro de 10 segundos. Para conseguir esta velocidad realizamos las llamadas delta para los usuarios en la web hook, a continuación, poner las operaciones de archivo en una cola para procesar más tarde.

Inténtalo

El cambio a WebHooks ha significado que podemos proporcionar una experiencia muy superior a nuestros clientes. Antes de que nuestros usuarios podrían arrastrar archivos en Dropbox y esperar un par de segundos para que aparezcan en la nube Cannon, ahora es instantánea.


Previous Post     Next Post


TAGS


CATEGORIES

.