Skip to content

GetFile

David Anderson edited this page Aug 22, 2023 · 3 revisions

Retrieving files

A persistent file can be retrieved from a specific host. This can be done using the function

get_file(int host_id, const char* file_name);

or the command line program (run in the project root dir)

get_file -host_id X -file_name Y

This program must be run in the project's root directory. get_file() creates a result with a name of the form:

get_FILENAME_HOSTID_TIME

Example: get_test.mpg_34_123456789 is a result representing the upload of test.mpg from host number 34 at time 1234567891.

An upload message is created for the specific host and added to the msg_to_host table in the database. This message instructs the client to upload the file and acknowledge a successful upload. The upload message included in the next RPC reply to the host. The message has the form:

<app>
    <name>FILE_MOVER</name>
</app>
<app_version>
    <app_name>FILE_MOVER</app_name>
    <version_num>BOINC_MAJOR_VERSION</version_num>
</app_version>
<file_info>
    <name>file_name</name>
    <url>upload_dir</url>
    <max_nbytes>1e10</max_nbytes>
    <upload_when_present/>
</file_info>
    RESULT_XML
<workunit>
    <name>result.name</name>
    <app_name>FILE_MOVER</app_name>
</workunit>

Include <msg_to_host/> in config.xml. Currently <ignore_upload_certificates/> needs to be included as there is no way to send upload certificates with these files.

Clone this wiki locally