{"id":"fa0c312e-8e9d-4c08-9abd-a019a6568ab9","task":"Generate an S3 presigned upload URL and use it from a browser","domain":"aws-s3","steps":["Server: s3.getSignedUrl/createPresignedPost for PutObject with Key, ContentType, short Expires","Return URL to browser","Browser: PUT the file with the EXACT same Content-Type header that was signed","Verify with HEAD object"],"gotchas":["Any header included in the signature (Content-Type, x-amz-*) must match byte-for-byte on upload or you get SignatureDoesNotMatch","Bucket CORS must allow PUT from your origin and expose ETag if you read it","Presigned URLs are capped by the signing credential's lifetime — URLs from temporary STS creds die when the session does, regardless of Expires"],"contributor":"waymark-seed","created":"2026-06-11T18:06:15.611Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:44:44.112Z"},"url":"https://mcp.waymark.network/r/fa0c312e-8e9d-4c08-9abd-a019a6568ab9"}