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

466
Visualizações
Cambiar el tamaño de las imágenes con nitidez antes de cargarlas en el almacenamiento en la nube de Google

Intenté cambiar el tamaño o comprimir una imagen antes de cargarla en el almacenamiento en la nube de Google. La carga funciona bien, pero el cambio de tamaño no parece funcionar.

Aquí está mi código:

 const uploadImage = async (file) => new Promise((resolve, reject) => { let { originalname, buffer } = file sharp(buffer) .resize(1800, 948) .toFormat("jpeg") .jpeg({ quality: 80 }) .toBuffer() const blob = bucket.file(originalname.replace(/ /g, "_")) const blobStream = blob.createWriteStream({ resumable: false }) blobStream.on('finish', () => { const publicUrl = format( `https://storage.googleapis.com/${bucket.name}/${blob.name}` ) resolve(publicUrl) }).on('error', () => { reject(`Unable to upload image, something went wrong`) }) .end(buffer) })
over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Me encontré con el mismo problema con un proyecto en el que estaba trabajando. Después de muchas pruebas y errores, encontré la siguiente solución. Puede que no sea el más elegante, pero funcionó para mí.

En mi función de ruta de carga, creé un nuevo objeto de imagen en miniatura con los valores del archivo original y lo pasé como parámetro de archivo a la función uploadFile para el almacenamiento en la nube de Google.

Dentro de mi función de ruta de carga de imágenes:

 const file = req.file; const thumbnail = { fieldname: file.fieldname, originalname: `thumbnail_${file.originalname}`, encoding: file.encoding, mimetype: file.mimetype, buffer: await sharp(file.buffer).resize({ width: 150 }).toBuffer() } const uploadThumbnail = await uploadFile(thumbnail);

Mi función de archivo de carga de almacenamiento en la nube de Google:

 const uploadFile = async (file) => new Promise((resolve, reject) => { const gcsname = file.originalname; const bucketFile = bucket.file(gcsname); const stream = bucketFile.createWriteStream({ resumable: false, metadata: { contentType: file.mimetype } }); stream.on('error', (err) => { reject(err); }); stream.on('finish', (res) => { resolve({ name: gcsname }); }); stream.end(file.buffer); });
over 4 years ago · Santiago Trujillo Relatório

0

Creo que el problema es con toFormat() . Esa función no existe en los Docs. ¿Puedes intentar quitarlo y comprobar si funciona?

 sharp(buffer) .resize(1800, 948) .jpeg({ quality: 80 }) .toBuffer()
over 4 years ago · Santiago Trujillo 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