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

154
Visualizações
Obtenga el último archivo GIF de una API estática

¿Cómo puedo verificar si el GIF actual de una API es diferente del GIF anterior guardado desde el mismo punto final de la API?

Hay una API que proporciona un archivo GIF de datos visuales del pronóstico del tiempo. Esta es la API: https://api.met.gov.my/static/images/swirl-latest.gif . Este GIF estático se actualiza de vez en cuando.

La situación: estoy tratando de obtener este GIF y guardarlo en mi base de datos, para poder tener una serie de GIF que muestren la progresión del clima a lo largo del tiempo. Mi pila actual es Nodejs, MeteorJs, MongoDB y React.

El problema: no sé con qué frecuencia se actualiza el GIF para programar un trabajo cron para obtener el nuevo GIF actualizado. Puedo configurar un trabajo cron cada n minutos/horas para obtener el GIF de la API, pero ¿cómo determinar si el último GIF obtenido es el mismo o diferente de los GIF obtenidos anteriormente en la base de datos, evitando así un ¿duplicar?

Solución potencial: dado que los GIF son básicamente una serie de imágenes, podría haber una manera de comparar dos GIF en términos de sus similitudes. Pero no estoy seguro de cómo hacerlo. Encontré un paquete npm gifuct-js que básicamente puede analizar un GIF y devolver información sobre el GIF, por ejemplo (tomado de la página de GitHub del paquete):

 { // The color table lookup index for each pixel pixels: [...], // the dimensions of the gif frame (see disposal method) dims: { top: 0, left: 10, width: 100, height: 50 }, // the time in milliseconds that this frame should be shown delay: 50, // the disposal method (see below) disposalType: 1, // an array of colors that the pixel data points to colorTable: [...], // An optional color index that represents transparency (see below) transparentIndex: 33, // Uint8ClampedArray color converted patch information for drawing patch: [...] }

Dado que los GIF de la API antes mencionada pueden tener las mismas dimensiones, estoy pensando en usar pixels o colorTable de colores como punto de comparación entre los dos GIF. Pero no estoy seguro de si esto daría el resultado que quiero, es decir, determinar si los dos GIF son idénticos o no.

¡Cualquier ayuda será muy apreciada!

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Haga un hash del gif anterior y el obtenido actualmente y podrá ver si hay alguna diferencia. También puede verificar el tamaño del archivo, pero en mi opinión, verificar con hash es más preciso.

about 4 years ago · Juan Pablo Isaza Relatório

0

La idea de Robi Hahn es más genérica y funcionará.

Pero en este caso hay otros enfoques que también funcionarán. Revisé la URL dada y las siguientes dos ideas funcionarían.

Puede verificar el last-modified del encabezado de respuesta: si es diferente de la marca de tiempo que recibió con su última solicitud hace x minutos, luego guarde la nueva imagen; de lo contrario, deséchela (ya que es la misma que su imagen ya almacenada).

O puede solicitar el .gif con el encabezado If-Modified-Since que contiene la marca de tiempo del último .gif almacenado en su base de datos. Luego, el servidor devuelve un 304 - not modified (en cuyo caso no hay un .gif más nuevo disponible) o devuelve la imagen actualizada.

about 4 years ago · Juan Pablo Isaza 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