Skip to content

Staging input files

David Anderson edited this page Mar 19, 2026 · 2 revisions

Before using an input file you must "stage" it, i.e. put it where it is accessible via HTTP from volunteer computers. The default place is on your BOINC server, in your project's download directory hierarchy.

You may also put input files on Web servers other than your BOINC server. In that case you must specify the URL, file size, and MD5 either in the input template or as an argument to the create_work function or script.

Command-line tool

You can stage a file using

bin/stage_file [--gzip] [--copy] [--verbose] path

--gzip

send the file in compressed form to 7.0+ clients. Note: you must also include the <gzip/> attribute for this file in the job's input template.

--copy

copy the file from its current location to the BOINC download directory. The default is to move it.

--verbose

generate verbose output.

stage_file also

  • checks whether a file of that name already exists in the download hierarchy. If so, it verifies that the file has the same contents.
  • computes and saves the file's MD5 hash and size. This eliminates the need to do this each time a job submission refers to the file.

path is the file to be staged. If path is a directory, all the files in that directory are staged.

Staging files from C++

You can stage files from a program either by using system() to run the above script, or by doing it directly; see tools/stage_file_native.cpp for an example.

Clone this wiki locally