Add --file-local to Machines API

When using the --file-local option in fly m, the following object is added to the status JSON with the files array.

  "guest_path": "guest/path"
  "raw_value": "base64 of file content"

Adding the files keyword manually to the API calls under config didn’t seem to do anything. How was this achieved on the CLI side and can I somehow do the same with the API directly?

hey @chonk

When you create or update a Machine with the API, you should be able to add files just like with flyctl commands:

    "files": [
        "guest_path": "string",
        "raw_value": "string"

If you’re not seeing this work when using this format, then let us know!

1 Like

You found the feature before I could publish the Fresh Produce :smile:. We’ll also get the docs updated with details and examples soon!


It turns out I SSH’d into the wrong machine to check my file, sorry…

But for people wondering, here is a working example in Python.

import requests

APP_NAME = 'app'
MACHINE_NAME = 'machine'

headers = {
    'Authorization': 'Bearer MY_FLY_TOKEN',

# run a machine
r =
        'name': MACHINE_NAME,
        'config': {
            'image': 'alpine',
            'processes': [{'cmd': ['sleep', 'infinity']}],
            'files': [{'guest_path': '/hello.txt', 'raw_value': 'Z29vZGJ5ZQo='}],

1 Like

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.