DEV Community

Cover image for Setting tmp Folder Using express-fileupload before Deploying to Cyclic.sh
Awosise Oluwaseun
Awosise Oluwaseun

Posted on

 

Setting tmp Folder Using express-fileupload before Deploying to Cyclic.sh

Error: EROFS: read-only file system, '/var/task/tmp/tmp...'

You are here because you probably just finished a file upload feature that runs well locally but on deploying it to cyclic.sh, you encountered the error above.

Don't fret, there are 2 key things to know about this error:

  1. You can only write to a tmp folder which must be in the root folder of your project directory.
  2. Cyclic.sh tries to navigate the tmp folder relative to the current working directory which is not the root folder of your project. Hence, it appends /var/task/ to the tmp directory itself.

The simple solution is to set the value of one of the parameters in your express-fileupload package as shown below. I would assume you have installed both express-fileupload and express, if not, run the following command:

 npm install express-fileupload express
// The Solution
const express = require('express');
const fileupload = require('express-fileupload');

app.use(fileupload({
    useTempFiles: true,
    tempFileDir: "/tmp",
}))
Enter fullscreen mode Exit fullscreen mode

It is important that you set the value of the tempFileDir property to be \tmp. This way, cyclic.sh is able to navigate the tmp folder relative to the root directory. You can read more on express-fileupload.

I hope this helped. Thanks for reading.

Top comments (0)

Super Useful CSS Resources

A collection of 70 hand-picked, web-based tools which are actually useful.
Each will generate pure CSS without the need for JS or any external libraries.