Home > Net >  Use url link instead of path to file in Node JS
Use url link instead of path to file in Node JS

Time:01-06

I have a requirement to process a file in node to extract some text from that file, my issue is since i am new to node, i don't understand how to pass the path to the file. I am using cloud Function for Firebase so there is no server, hence no directory for files. Is there a workaround? Like using url links instead?

Here's my Node JS code:

exports.extractTextFromPDF = functions
.https.onCall((data, context) => {
const bucket = firebase.storage().bucket()
const file = bucket.file(data.pathLink) //data.pathlink is 'my-pdf.pdf' which is a file inside my storage
return file.download()
  .then(data => {
    return pdfParse(data[0])
  })
  .then(data => {
    file.delete()
    .then(() => {
      return data.text
    })
    .catch(err => console.log(err))
  })
  .catch(err => console.log(err))

})

I understand i can just pass the path to a file in my server, but i have no server! Can i use a url link instead?

If that's not possible, is it possible alternatively to upload a file on the front end and pass that file in node?

I've tried a number of things:

  1. I've tried passing a url link instead of the path to file - doesn't work

  2. I've tried passing the firebase storage bucket path as a path to file - doesn't work

  3. I've tried uploading a file from the front end and passing it to node as the file path - doesn't work either

CodePudding user response:

As shown in this official Cloud Function sample, you can use the temporary directory of the Cloud Function as a local disk storage.

As explained in the doc, you should delete temporary files before ending the Cloud Function:

Local disk storage in the temporary directory is an in-memory filesystem. Files that you write consume memory available to your function, and sometimes persist between invocations. Failing to explicitly delete these files may eventually lead to an out-of-memory error and a subsequent cold start.


The doc also draws our attention on the fact that we should use platform/OS-independent methods to construct file paths. By following the approach presented in the sample you will follow this recommendation.

  • Related