How to Retrieve a Deposition File#

Note

Before going through this document, please ensure that you know how to create an instance of the _DepositionFiles class, depo_file_obj, by reviewing the How to Work with Deposition Files guide.

In this guide, we plan to retrieve the sample.txt from an already published deposition in our Zenodo Sandbox account.

The content preview page corresponding to the deposition with ID\# = 1095982

We need two pieces of information: (i) the deposition ID (here, ID = 1095982), and (ii) the file ID (in this case, File ID: 750761a9-d589-4599-ac12-91f57b77bdc2). Let’s store these two IDs in two separate variables for convenience:

>>> depo_id = 1095982
>>> my_file_id = "750761a9-d589-4599-ac12-91f57b77bdc2"

Now, you can simply call the retrieve_deposition_file() function on an instance of the _DepositionFiles class (here, the instance is stored in the depo_file_obj variable) and pass the aforementioned variables as function arguments

>>> my_depo_file = depo_file_obj.retrieve_deposition_file(id_=depo_id, file_id=my_file_id)
>>> my_depo_file
<zenopy.record.Record at 0x7fca84370340>

Let’s check the file name of the deposition file stored in the my_depo_file variable

>>> my_depo_file.get("filename")
'sample.txt'

which shows we have received the file we were looking for.

Tip

The retrieve_deposition_file() function call as shown above will retrieve and return the file object as an instance of the Record class. In order to download the file on disk, pass the absolute/relative path of the output file as outfile_path=<path-to-output-file> as the third argument

>>> my_depo_file = depo_file_obj.retrieve_deposition_file(id_=depo_id, file_id=my_file_id, outfile_path="./local_sample.txt")

Here, we have stored the file object in the my_depo_file variable and downloaded and saved the sample.txt file in the current working directory (“./”) after renaming the file as local_sample.txt.