Won't `setDefaultHeader:` set that data for this and all following requests? It's fine to use it for values that will be overwritten every time like `x-amz-security-token` but I'm not sure it's the right thing to do for user defined metadata.

I would suggest adding them to the `NSMutableURLRequest`. What do you think?