File Handling with Cloudomation

Cloudomation offers several options for working with files and file systems. This article describes the file handling functionality available to you on the Cloudomation platform, which allows you to work with files without needing a separate environment (e.g. a remote server) on which your file operations happen.

The system.file function

The file function allows you to create file objects. Arguments:
  • name – string. The name of the file. If it doesn’t exist, it will be created.

Note: file contents will be overwritten without warning if a file of the same name already exists.

Returns:

  • The file object

Example:

def handler(system, this):
    # create a file object
    file_object = system.file('myfile.txt')

    # write to the file
    file_object.save(content='saving some text')

    # read from the file
    text = file_object.get('content')
    this.log(text=text)

    return this.success('all done')

The system.files function

The system.files function lists all files in a given directory.

files = system.files(dir='flows', glob='**/*.py')

Arguments:

  • **filters – dictionary. Filters to limit the search results.

Returns:

  • An iterator over all matched files which generates File objects.

Example:

def handler(system, this):
    # list all files on the Cloudomation platform
    all_files = system.files()
    for file in all_files:
        this.log(file)

    # List only *.zip files
    zip_files = system.files(filter={
        'field': 'name',
        'op': 'like',
        'value': '%.zip',
    })
    for zip_file in zip_files:
        this.log(zip_file)

    return this.success('all done')