Late.dev media upload workflow with presigned URLs, validation, and platform-specific constraints
late-tool.mjs media presign --filename=photo.jpg --content-type=image/jpegpublicUrl in post's mediaItems array# Step 1: Get presigned URL
node ../../../../.founderOS/scripts/late-tool.mjs media presign \
--filename=photo.jpg --content-type=image/jpeg
# Returns: { "publicUrl": "https://...", "uploadUrl": "https://..." }
# Note: uploadUrl is internal only — never log it
# Step 2: Reference in post
node ../../../../.founderOS/scripts/late-tool.mjs posts create \
--accounts='["acc_123"]' \
--text="Check this out!" \
--media='[{"publicUrl":"https://...","type":"image"}]'
| Platform | Images | Video | Other |
|---|---|---|---|
| JPEG/PNG/GIF (multiple) | MP4/MOV | PDF docs (100MB, 300pp max) | |
| X/Twitter | 4 images max OR 1 video | MP4/MOV | — |