Urgent.News

What's breaking now, across thousands of outlets.

Tech

Implement Training File Export with Temporary Downloads (Presigned URLs, Retention)

The constraint that changes this design is large-file throughput. An education platform should keep export bytes off its application workers, issue a short-lived download URL only after authorization, and record the retention decision next to the artifact metadata. That gives a Node.js API a small control-plane job while the storage service handles the long data path. Short answer: create the…

The article discusses the design considerations for implementing training file exports in an education platform, focusing on large file throughput. It suggests keeping export bytes off application workers and issuing short-lived download URLs after authorization, with retention decisions recorded alongside artifact metadata. The storage service should handle the long data path, while the API focuses on a small control-plane job.

Key points include:

- Create the export as an immutable object, sign a GET request with a narrow time window, and make retention a policy evaluation rather than a deletion timer.

- Use a signed URL as a capability, not proof of continued authorization.

- Record timestamps alongside policy selection and input data to enable reproducible audits.

- For large training archives, returning metadata and a signed URL is more efficient than buffering the entire object in a web process.

- The API should own identity, authorization, policy selection, and audit records, while storage handles bytes, range responses, checksums, and high-throughput transfer.

- A queue or worker should own export assembly, keeping responsibilities distinct to handle retries and ensure the API enforces learner and tenant rules consistently.

- Retention decisions are stored in a retention decision object containing policy version, expiration time, and reason.

- The export design is portable across storage implementations, but signing and lifecycle primitives differ between Amazon S3, Google Cloud Storage, and Azure Blob Storage.

Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.

Read the original at dev.to →

More in Tech

Making a calculator other sites can embed, on a fully static site

I run a small site for freelancers, Paid & Filed , and its most useful page is a free 1099 tax calculator that works out quarterly estimated tax.

  • Calculator embedded via React component
  • Embed route excludes header, footer, analytics
  • Height adjustment script for seamless display

Turning one TypeScript CardSpec into 49 static palette PNGs

Belle AI (aicoloranalysis.io) publishes downloadable color-palette cards: one for each of the twelve sub-seasons and four parent seasons, plus cards for 20 celebrity pages and 13 "color analysis for…

  • Belle AI generates 49 static palette PNGs from one CardSpec
  • CardSpec shape defines common structure for all cards
  • Route handler creates static parameters for all 49 cards

Exit codes in CI: what every number means and how to fix it

Exit codes in CI are the only thing a failed step gets to say about itself, which is why so much of debugging a pipeline comes down to reading one number.

  • Exit codes indicate success (0) or failure in CI pipelines
  • 0 means successful completion, others are convention-based
  • Bash reserves 127 (missing command) and 126 (executable issue)

More from Sunday 15 November →