Я не уверен, что вы можете положиться на используемый nginx (X-Accel-Redirect
- это nginx-ism) - heroku docs подразумевает, что он не всегда используется.
Кроме того, X-Accel-Redirect
, насколько мне известно, предназначен только для перенаправления файлов, фактически находящихся на сервере, а не для внешних файлов. Почему бы не выполнить обычное перенаправление на размещенный файл S3 (при необходимости используя аутентифицированный URL)?
Если вам нужно установить заголовки, такие как расположение контента, это можно сделать во время загрузки или после нее. Если вы используете туман для ведения бизнеса в s3, вы можете сделать это следующим образом (при условии, что storage
является Fog::Storage
объектом)
storage.copy_object("your_bucket", "filename","your_bucket","filename", "x-amz-metadata-directive" => 'REPLACE', 'Content-Disposition' => '...')
Обратите внимание, что при этом перезаписываются все метаданные - если у вас есть другие поля, такие как Content-Type, Cache-Control и т. Д., Обязательно установите их здесь, иначе они будут потеряны.