We run a web service and in the past we allowed ftp file uploads to our customers.

In the future we want to switch from ftp to http/https.

The ms-windows admins which currently upload data via ftp see no way to use http.

I have no clue either since I don't use ms-windows since 15 years any more.

Is there a simple tool for ms-windows which can do file upload via http?

Required features:

  • http upload (client only). Server side runs linux, apache, django
  • Needs to run under ms-windows.
  • batch processing (upload daily at 6:00 all files in local directory "foo")

Optional features:

  • Move local file to a different directory on success
  • available for linux
  • GUI
  • 2
    Who will upload? You, your customers, some bot? On a single machine or many? Do you need an HTTP server or client? With a UI or command-line?
    – Nicolas Raoul
    Sep 4, 2017 at 10:07
  • 2
    I updated the question. I hope it is more clear now. The customer will upload from windows. It should be possible to run the upload via batch. Please ask again if you think something is missing.
    – guettli
    Sep 4, 2017 at 13:33

1 Answer 1


Since I found no matching tool, I wrote one myself:



Generic http upload tool.

If the http upload was successfull, files get moved to a "done" sub directory.

The upload is considered successfull by tbzuploader if the servers replies with http status 201 Created

Additional features: Handles pairs of files.

For example you have four files: a.pdf, a.xml, b.pdf, b.xml

The first upload should take a.pdf and a.xml, and the second upload b.pdf and b.xml, then read the docs for --patterns.



    usage: tbzuploader [-h] [--patterns= LIST_OF_PATTERNS]
                       [--min-age-seconds MIN_AGE_SECONDS]
                       [--done-directory DONE_DIRECTORY]
                       local_directory url

    positional arguments:

    optional arguments:
      -h, --help            show this help message and exit
      --patterns= LIST_OF_PATTERNS
                            List of file endings which should get uploaded
                            together. Example: --patterns="*.pdf *.xml" The pairs
                            (a.pdf, a.xml) and (b.pdf, b.xml) get uploaded
      --min-age-seconds MIN_AGE_SECONDS
                            Skip files which are too young. Default: 60
      --done-directory DONE_DIRECTORY
                            files get moved to this directory after successful
                            upload. Defaults to {local_directory}/done


Install for usage from tbzuploader at pypi

pip install tbzuploader

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.