I have a Node.js application on IBM Bluemix.
I need to let the user upload a image. In my localhost, the image is save into the folder, no problems...
But when I do the same in production, the file isn't save to the server corresponding folder...
Someone can help?
Assuming this is a Cloud Foundry app ... the file system is ephemeral, you need to save the images somewhere external to the app for them to be persisted through app restarts.
There is a sample app that shows how to do this using Cloudant - https://github.com/IBM-Bluemix/nodejs-cloudant
You will need to specify the directory using __dirname , but every time you redeploy your application you will lose the files. Stoping and Restarting should be ok.
Related
I have an Electron/Angular Desktop app and want to save some audios inside a folder in the project as a functionality to the app to avoid doing it manually.
Below is my folder structure:
I want to save the audios inside the uploads folder, it is inside the server folder where i have a Nodejs server. It is working for now in development but i do not know how to run the node server when i build the app.
OBS.: I will just use the app in desktop and want the server runs together with the app without me to initialize it every time.
Can i do that?
I try some research but all is related to web development and web server.
I deployed app on heroku which can save files with database record. Problem is, when i deploy again some changes, folder with files is new without files which were there before deploy (rows in database stay of course). How can resolve this? I want to folder "files" in root app folder stay this same during all future deploys on Heroku.
App - nodejs + express + react + postgresl
This is not possible, Heroku provides an ephemeral file system which is wiped out after each deployment.
You need to persist data in a database (MongoDB Atlas, Heroku Postgres addon) or use an external file storage (AWS S3, Dropbox).
Check out Files on Heroku to see some options and examples.
I use a elastic-beanstalk service on AWS by using Node.js.
I use a multer for file upload and uploaded file is saved on webserver.
But when I publish a new version of project file, the files that saved on my webserver are gone.
I want to maintain the file on webserver.
just overwrite not rewrite.
so how can I solve this issue?
Thanks for your time!
When working with Elastic Beanstalk (or any auto-scaling environment), ideally you don't want to store anything on the server itself. If a user is uploading a file, save it somewhere off the server.
In AWS, this typically means storing it in S3 - this means that the file doesn't get lost when the project is updated or the server gets terminated.
I am using node.js to upload files to my Heroku server. Everything works fine, but when the Heroku server restarts or goes down all the uploaded files disappears, the URL hits returns 'Not Found'.
Experienced this months ago. You need to host the images somewhere else as Heroku does not support storing files in them. Ended up using Cloudinary to store files, and then later on getting a VPS server.
Media files and other user content that is uploaded by users should not be stored on Heroku. Heroku was built to run the application code and it only cares about the files of your application that are in your repository.
Heroku discards your previous environment on every deploy, and launches a new one based on your code repository.
So only application code should stay there, other things should be delegated to other services, in this case for file storage you should use something like S3 or similar.
Heroku has something called Ephemeral filesystem.
From the documentation:
Each dyno gets its own ephemeral filesystem, with a fresh copy of the
most recently deployed code. During the dyno’s lifetime its running
processes can use the filesystem as a temporary scratchpad, but no
files that are written are visible to processes in any other dyno and
any files written will be discarded the moment the dyno is stopped or
restarted.
I have created an application in which the android mobile takes picture and uploads it to a server. The server accepts the image, stores in local directory and updates the path to the database. Everything works fine on my localhost (Windows) but when i deploy the war file it is not creating the file. The problem is my localhost is on windows but the main server(ISP) is on Linux. Both my localhost and main server (ISP) are using glassfish. On the main server (ISP) I am logging through admin and then deploying the war file.
This might be your problem.
Where do you store your file in the server. In windows you might be giving the path as
D://images/dir1/......
In linux this path is not valid. It should look something like
/home/tomcat/images/repo/...........
Please post the code where you mention the location of the directory in which you store the images.