get_file_contents

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.

Parameters:
  • rel_file_paths (str, list of str, None, default None) –

    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') –

    ‘rel_path’:

    Path relative to server_home/anon_root is returned.

    ’url’:

    A url to the file is returned.

  • anon (bool) –

    True:

    return the filepaths/url of files in anon_root

    False:

    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) )

Yields:

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)

Raises:
  • 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’

Examples

Assuming a file structure as follows.

filesystem
+---server_home
    +---test_file1.txt
    +---test_folder
        +---test_file2.zip
>>> 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/test_file2.zip"],
...                                  read_mode="rb"))
[{"path": "test_file1.txt", "content": b"test text"},
 {"path": "test_folder/test_file2.zip", "content": b'PK\x03\x04\x14\x00\x00...'}]