Вы правы. Для этого нужны заголовки. Это будет:
Content-type: image/png
Content-Disposition: attachment; filename="some_image.png"
Я не уверен, как S3 справится с этим, но если вы хотите отобразить эти изображения, заголовок Content-Disposition
должен быть пропущен.
РЕДАКТИРОВАНИЕ: Отображение изображения с помощью <img src="some_image.png" alt="" />
продолжает работать даже при отправке обоих заголовков. Изображение хорошо отображается в моих тестах.