title: How to define the Cache-Control header on an S3 object via a signed URL?
body: <p>Following the instructions in <a href="https://devcenter.heroku.com/articles/s3-upload-node" rel="noreferrer">this guide</a>, I've managed to get uploads working via signed URLs. It looks something like this:</p>
  
  <pre><code>const s3 = new aws.S3();
  
  const s3Params = {
    Bucket: S3_BUCKET,
    Key: fileName,
    Expires: 60,
    ContentType: fileType,
    ACL: 'public-read',
    CacheControl: 'public, max-age=31536000',
  };
  
  s3.getSignedUrl('putObject', s3Params, (err, data) =&gt; {
    // ...
  });
  </code></pre>
  
  <p>...except my <code>CacheControl</code> param (which I added myself; it isn't in the guide) does not seem to take effect. When I use the above code to generate a signed URL and upload something to it, the resulting object in S3 is served with no <code>Cache-Control</code> header.</p>
  
  <p>What am I doing wrong?</p>