(define-method (files:get root path #!key rev) "https://api-content.dropbox.com/1/files" #f (lambda (in-port) ; Based on copy-port from spiffy-cgi-handlers. (let ((bufsize 65536) (total 0)) (let loop ((data (read-string bufsize in-port))) (unless (string-null? data) (display data) (if (callback) (begin (set! total (+ total (string-length data))) (if (port? (old-output-port)) (with-output-to-port (old-output-port) (lambda () ((callback) total))) ((callback) total)))) (loop (read-string bufsize in-port)))))) (lambda (headers) ; read-headers (let ((metadata (header-value 'x-dropbox-metadata headers))) (if metadata (read-json metadata) #f))))