Skip to content

Commit

Permalink
Refactor server.mjs to set cache headers for Cloudflare
Browse files Browse the repository at this point in the history
  • Loading branch information
cryptofyre committed Aug 10, 2024
1 parent 3b71899 commit fc06841
Showing 1 changed file with 21 additions and 0 deletions.
21 changes: 21 additions & 0 deletions server.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -182,13 +182,27 @@ app.get('/artwork/generate', async (req, res) => {
logger.info(`Job ${jobId}: Received to generate GIF for URL ${url}`);

if (fs.existsSync(gifPath)) {
// Set cache headers for Cloudflare
const sevenDaysInSeconds = 7 * 24 * 60 * 60;
const expiresDate = new Date(Date.now() + sevenDaysInSeconds * 1000).toUTCString();

res.setHeader('Cache-Control', `public, max-age=${sevenDaysInSeconds}`);
res.setHeader('Expires', expiresDate);

logger.info(`Job ${jobId}: Served existing GIF on URL https://art.cider.sh/artwork/${key}.gif`);
return res.status(200).json({ key, message: 'GIF already exists', url: `https://art.cider.sh/artwork/${key}.gif` });
}

processQueue.add({ url, key, jobId }).then((job) => {
logger.info(`Job ${jobId}: Added to the queue for URL ${url}`);
job.finished().then(() => {
// Set cache headers for Cloudflare
const sevenDaysInSeconds = 7 * 24 * 60 * 60;
const expiresDate = new Date(Date.now() + sevenDaysInSeconds * 1000).toUTCString();

res.setHeader('Cache-Control', `public, max-age=${sevenDaysInSeconds}`);
res.setHeader('Expires', expiresDate);

logger.info(`Job ${jobId}: GIF processing completed for URL ${url}`);
res.status(202).json({ key, message: 'GIF is being processed', url: `https://art.cider.sh/artwork/${key}.gif` });
}).catch((err) => {
Expand All @@ -206,6 +220,13 @@ app.get('/artwork/:key.gif', (req, res) => {
const key = req.params.key;
const gifPath = path.join(cacheDir, `${key}.gif`);

// Set cache headers for Cloudflare
const sevenDaysInSeconds = 7 * 24 * 60 * 60;
const expiresDate = new Date(Date.now() + sevenDaysInSeconds * 1000).toUTCString();

res.setHeader('Cache-Control', `public, max-age=${sevenDaysInSeconds}`);
res.setHeader('Expires', expiresDate);

if (fs.existsSync(gifPath)) {
logger.info(`Retrieving GIF for key ${key}`);
return res.sendFile(gifPath);
Expand Down

0 comments on commit fc06841

Please sign in to comment.