Transferring files via Windows BITS using Apache/HTTP/RoR (w


Hey everyone:

Here is a background on what I want to accomplish:

  • Have a unique URI ( and then go via a client I
    developed and hit that URI.
  • Perform server side code to determine whether there are new files to
  • Files are all web content files with the exception of .txt files (so
    JPEGs, HTML, CSS, etc…)
  • If there are new files to download, I want the client to download
    all of it at once…, effectively downloading all the files from
    server using the HTTP protocol.
  • If there are not new files to download, I’d like for the client to
    download nothing.
  • I would also like to upload .txt files to the server ever hour, read
    their contents, and insert/update them into my database schema.
  • I’d like to use Ruby On Rails/Apache/Linux for the server
  • I’d like to use Windows BITS (Background Intelligent Transfer Service)
  • I want to make sure there ia a way to accomplish these things before I
    really dive into implementing them.

Here are my questions:

  • Does Apache with RubyOnRails meet the following qualifications of
    Background Intelligent Transfer Service? And if so, how would I
    accomplish this?
  • I’m a newbie when it comes to HTTP/Ruby/Apache, so please phrase your
    responses in a way that someone of my level of understanding can ‘get’.

BITS supports HTTP and HTTPS downloads and uploads and requires that
the server supports the HTTP/1.1 protocol. For downloads, the HTTP
server’s Head method must return the file size and its Get method must
support the Content-Range and Content-Length headers. As a result, BITS
only transfers static file content and generates an error if you try to
transfer dynamic content, unless the ASP, ISAPI, or CGI script supports
the Content-Range and Content-Length headers.
BITS can use an HTTP/1.0 server as long as it meets the Head and Get
method requirements.
To support downloading ranges of a file, the server must support the
following requirements:

  • Allow MIME headers to include the standard Content-Range and
    Content-Type headers, plus a maximum of 180 bytes of other headers.
    • Allow a maximum of two CR/LFs between the HTTP headers and the
      first boundary string.

Thanks so much!

(If you’d like to personally respond to me, my email is membos AT yahoo
DOT com)