Parent
#32
What to build
Push the cleaned posts/assets/ to the new website-blob store, preserving pathnames so the only downstream change is the hostname swap.
Approach: re-purpose posts/scripts/upload-assets.js --all against the new store. Optionally add a --target new flag that selects NEW_BLOB_READ_WRITE_TOKEN over BLOB_READ_WRITE_TOKEN, with addRandomSuffix: false to preserve pathnames. Batches of 5 concurrent uploads to avoid rate limits.
After upload, run a verification step: HTTP HEAD against every uploaded URL using the new hostname. 0 failures required.
Acceptance criteria
Blocked by
Parent
#32
What to build
Push the cleaned
posts/assets/to the newwebsite-blobstore, preserving pathnames so the only downstream change is the hostname swap.Approach: re-purpose
posts/scripts/upload-assets.js --allagainst the new store. Optionally add a--target newflag that selectsNEW_BLOB_READ_WRITE_TOKENoverBLOB_READ_WRITE_TOKEN, withaddRandomSuffix: falseto preserve pathnames. Batches of 5 concurrent uploads to avoid rate limits.After upload, run a verification step: HTTP HEAD against every uploaded URL using the new hostname. 0 failures required.
Acceptance criteria
posts/assets/**files pushed towebsite-blobstore with identical relative pathnames (content/clients/...,content/team/...,content/posts/<slug>/...)--target new(or equivalent) selecting the new store tokenaddRandomSuffix: falseso pathnames match the legacy convention exactlyNEW_BLOB_READ_WRITE_TOKEN=... pnpm upload-assets:all --target newBlocked by