In PreviewFile Stores are available in Preview. There may be changes to allowed limits in the future.If you have any feedback on File Stores, please let us know in our community.
/tmp
directory which are subject to deletion between executions, File Stores are separate cloud storage. Files within a File Store can be long term storage accessible by your workflows.

Managing File Stores from the Dashboard
You can access a File Store by opening the Project and selecting the File Store on the left hand navigation menu.
Uploading files to the File Store
To upload a file, select New then select File:




Deleting files from the File Store
You can delete individual files from a File Store by clicking the three dot menu on the far right of the file and selecting Delete.
File deletion is permanentOnce a file is deleted, it’s not possible to recover it. Please take care when deleting files from File Stores.
Managing File Stores from Workflows
Files uploaded to a File Store are accessible by workflows within that same project. You can access these files programmatically using the$.files
helper within Node.js code steps.
File Stores are scoped to ProjectsOnly workflows within the same project as the File Store can access the files. Workflows outside of the project will not be able to access that project’s File Store.
Listing files in the File Store
The$.files.dir()
method allows you to list files and directories within the Project’s File Store. By default it will list the files at the root directory.
Here’s an example of how to iterate over the files in the root directory and open them as File
instances:
Opening files
To interact with a file uploaded to the File Store, you’ll first need to open it. Given there’s a file in the File Store calledexample.png
, you can open it using the $.files.open()
method:
Uploading files to File Stores
You can upload files using Node.js code in your workflows, either from URLs, from the/tmp
directory in your workflows or directly from streams for high memory efficency.
Uploading files from URLs
File.fromUrl()
can upload a file from a public URL to the File Store.
First open a new file at a specific path in the File Store, and then pass a URL to the fromUrl
method on that new file:
Uploading files from the workflow’s /tmp
directory
File.fromFile()
can upload a file stored within the workflow’s /tmp
directory to the File Store.
First open a new file at a specific path in the File Store, and then pass a URL to the fromFile
method on that new file:
Uploading files using streams
File Stores also support streaming to write large files.File.createWriteStream()
creates a write stream for the file to upload to. Then you can pair this stream with a download stream from another remote location:
ReadableStream
instance directly to a File instance:
(Recommended) Pass the contentLength if possibleIf possible, pass a
contentLength
argument, then File Store will be able to efficiently stream to use less memory. Without a contentLength
argument, the entire file will need to be downloaded to /tmp/
until it can be uploaded to the File store.Downloading files
File Stores live in cloud storage by default, but files can be downloaded to your workflows individually.Downloading files to the workflow’s /tmp
directory
First open a new file at a specific path in the File Store, and then call the toFile()
method to download the file to the given path:
Only the
/tmp/
directory is readable and writableMake sure that your path to toFile(path)
includesPassing files between steps
Files can be passed between steps. Pipedream will automatically serialize the file as a JSON description of the file. Then when you access the file as a step export as a prop in a Node.js code step, then you can interact with theFile
instance directly.
For example, if you have a file stored at the path logo.png
within your File Store, then within a Node.js code step you can open it:
steps
path:
Files descriptions are compatible with other workflow helpersFiles can also be used with
$.flow.suspend()
and $.flow.delay()
.Handling lists of files
One limitation of the automatic parsing of files between steps is that it currently doesn’t automatically handle lists of files between steps. For example, if you have a step that returns an array ofFile
instances:
$.files.openDescriptor
to parse the JSON definition of the files back into File
instances:
Deleting files
You can calldelete()
on the file to delete it from the File Store.
Deleting files is irreversibleIt’s not possible to restore deleted files. Please take care when deleting files.