Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

214
Visualizações
fs.writeFileSync y luego cargue el archivo en Firebase Storage

Puedo crear un archivo JavaScript de 300 bytes con fs.writeFileSync, y puedo ver el contenido del archivo con fs.readFileSync (al menos en un registro de la consola), pero no entiendo cómo usar más este archivo para subirlo a Firebase Storage, me da un error que dice "Excepción de una función finalizada: Error: ENOENT: no existe tal archivo o directorio, stat '/widget-62a6e3d160781a477aea435c.js'"

Supongo que no está en un directorio porque fs crea un archivo en un búfer. Este es el código:

 fs.writeFileSync(fileName, widgetContent); console.log(fs.readFileSync(fileName, 'utf8')) admin.initializeApp({ credential: admin.credential.cert(serviceAccount), storageBucket: "gs://chatbot-eebb1.appspot.com" }); var bucket = admin.storage().bucket(); //bucket.upload(fs.readFileSync(fileName, 'utf8')) //bucket.upload(fileName) bucket.upload(fs.createReadStream(fileName, { highWaterMark: 1024 }))

Entonces también probé esto:

 bucket.upload(fs.createReadStream(fileName, { highWaterMark: 1024 }))

Pero obtuve un error "Excepción de una función finalizada: TypeError [ERR_INVALID_ARG_TYPE]: el argumento "ruta" debe ser de tipo cadena. Recibió una instancia de class_1 "

Entonces, de todos modos, cuando usa fs.writeFileSync, ¿dónde va el archivo? ¿A un búfer? Si es así, ¿cómo accedería a este archivo para cargarlo en Firebase Storage con su SDK?

about 4 years ago · Santiago Gelvez
1 Respostas
Responde à pergunta

0

Para empezar, fs.writeFileSync , fs.readFileSync y fs.createReadStream están todos leyendo/escribiendo un archivo (llamado el valor de fileName ) en el directorio de trabajo actual del código.

A continuación,Bucket#upload() toma una cadena de ruta de archivo como primer argumento, no una secuencia. Esto es lo que significa El argumento "ruta" debe ser de tipo cadena. Recibió una instancia de class_1 .

Entonces, para corregir su llamada, podría usar simplemente bucket.upload(fileName) en su lugar.

Sin embargo, ¿por qué no escribir widgetContent directamente en Cloud Storage usando File#save() en lugar de escribir en el disco y luego cargarlo?

 admin.initializeApp({ credential: admin.credential.cert(serviceAccount), storageBucket: "gs://chatbot-eebb1.appspot.com" }); const bucket = admin.storage().bucket(); // make sure to return the Promise to the calling function return bucket.file(fileName) .save( widgetContent, // this can be a string or byte array { public: true } // see https://googleapis.dev/nodejs/storage/latest/global.html#CreateWriteStreamOptions for options ) .then( () => { // upload complete, do something }, (err) => { // upload failed, do something } )
about 4 years ago · Santiago Gelvez Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda