All operations below can be performed by either the Client class, the Application class and the CLI. Below are examples of how to perform each of these tasks using both classes:

Getting a list of files

client.app_files_list and app.files_list return a list of FileInfo objects.

import squarecloud as square

client = square.Client(api_key='API KEY')

async def example():
    files_list = await client.app_files_list(app_id='application_id', path='/')

    for file in files_list:
        print(file.name)  # 'main.py'
        print(file.type)  # 'directory' or 'file'
        print(file.size)  # 2140
        print(file.lastModified)  # 1677112835000

Reading a file

client.read_app_file and app.read_file return a BytesIO object.

import squarecloud as square

client = square.Client(api_key='API KEY')

async def example():
    file_bytes = await client.read_app_file(
        app_id='application_id', path='main.py'
    )

    print(file_bytes)  # b'01101000 01101001'

Creating a file

client.create_app_file and app.create_file return a Response object.

import squarecloud as square

client = square.Client(api_key='API KEY')

async def example():
    await client.create_app_file(
        app_id='application_id', path='/file.txt', file=square.File('file.txt')
    )

Deleting a file

client.delete_app_file and app.delete_file return a Response object.

import squarecloud as square

client = square.Client(api_key='API KEY')

async def example():
    await client.delete_app_file(app_id='application_id', path='/file.txt')

Moving a file

client.move_app_file and app.move_file return a Response object.

import squarecloud as square

client = square.Client(api_key='API KEY')


async def example():
    await client.move_app_file(
        app_id='application_id',
        origin='path/to/origin/file.py',
        dest='path/to/destination/file.py',
    )