FunctionalityWrapper.get_file_contents(rel_file_paths=None, style='rel_path', anon=False, read_mode='r')[source]

Yields dicts containing the path and content of files on the FTP server.

  • rel_file_paths (str, list of str, None, default None) –
    The content of all files on the server will be retrieved.
    str or list of str:
    Only the content of those files will be retrieved.
  • style ({'rel_path', 'url'}, default 'rel_path') –
    Path relative to server_home/anon_root is returned.
    A url to the file is returned.
  • anon (bool) –
    return the filepaths/url of files in anon_root
    return the filepaths/url of files in in server_home
  • read_mode ({'r', 'rb'}, default 'r') – Mode in which files should be read (see open("filepath", read_mode) )

content_dict (dict) – Dict containing the file path as relpath or url (see style) and the content of the file as string or bytes (see read_mode)

  • TypeError – If rel_file_paths is not None, a str or an iterable
  • TypeError – If style is not a str
  • TypeError – If anon is not a bool
  • TypeError – If read_mode is not a str
  • ValueError – If the value of rel_file_paths or its items are not valid filepaths
  • ValueError – If the value of style is not ‘rel_path’ or ‘url’
  • ValueError – If the value of read_mode is not ‘r’ or ‘rb’


Assuming a file structure as follows.

>>> list(ftpserver.get_file_contents())
[{"path": "test_file1.txt", "content": "test text"},
 {"path": "test_folder/test_file2.txt", "content": "test text2"}]
>>> list(ftpserver.get_file_contents("test_file1.txt"))
[{"path": "test_file1.txt", "content": "test text"}]
>>> list(ftpserver.get_file_contents("test_file1.txt", style="url"))
[{"path": "ftp://fakeusername:qweqwe@localhost:8888/test_file1.txt",
  "content": "test text"}]
>>> list(ftpserver.get_file_contents(["test_file1.txt", "test_folder/"],
...                                  read_mode="rb"))
[{"path": "test_file1.txt", "content": b"test text"},
 {"path": "test_folder/", "content": b'PK\x03\x04\x14\x00\x00...'}]