<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div>Hi All,</div><div><br></div><div>I am having difficulty forcing downloads of mp4 files with a ?download query in the url.</div><div><br></div><div>I am proxying files from an s3 bucket like this</div><div><br></div><div>  location ~* ^/myvideo/content/(.*)  {<br>    set $bucket           '<a href="http://mys3buket.domain.com" target="_blank">mys3buket.domain.com</a>';<br>    set $aws_access       'my_aws_access_key';<br>    set $aws_secret       'my_aws_secret_key';<br>    set $url_full         "$1";<br>    set_by_lua $now       "return ngx.cookie_time(ngx.time())";<br>    set $string_to_sign   "$request_method\n\n\n\nx-amz-date:${now}\n/$bucket/$url_full";<br>    set_hmac_sha1          $aws_signature $aws_secret $string_to_sign;<br>    set_encode_base64      $aws_signature $aws_signature;<br><br>    resolver               172.31.0.2 valid=300s;<br>    resolver_timeout       10s;<br><br>    proxy_http_version     1.1;<br>    proxy_set_header       Host $<a href="http://bucket.s3.amazonaws.com" target="_blank">bucket.s3.amazonaws.com</a>;<br>    proxy_set_header       x-amz-date $now;<br>    proxy_set_header       Authorization "AWS $aws_access:$aws_signature";<br>    proxy_buffering        off;<br>    proxy_intercept_errors on;<br><br>    rewrite .* /$url_full break;<br><br>    more_set_headers 'Access-Control-Allow-Origin: $cors_header' 'Vary: Origin';<br><br>    proxy_pass             <a href="http://s3.amazonaws.com" target="_blank">http://s3.amazonaws.com</a>;<br><br>  }</div><div><br></div><div><br></div><div>and have another location section like this</div><div><br></div><div><br>  location ~* (.*\.mp4\?download) {<br>    autoindex off;<br>    expires 365d;<br>    add_header Pragma public;<br>    add_header Cache-Control "public";<br><br>    if ($arg_dl = "1") {<br>        add_header Content-disposition "attachment; filename=$1";<br>    }<br>  }<br></div><div><br></div><div>The equivelent apache config that works is <br></div><div><br></div><div># Add headers to force download if required<br>RewriteCond %{REQUEST_URI} \.mp4$<br>RewriteCond %{QUERY_STRING} ^download$<br>RewriteRule ^ "-" [E=dwn:1]<br></div><div><br></div><div>I was expecting the video to download in this case, however it is just streamed instead as it would be without the ?download query.</div><div><br></div><div>Can somone please suggest where I am going wrong?</div><div><br></div><div>Regards<br></div><div><br>-- <br><div dir="ltr" class="m_1610423082371701693gmail_signature">Callum</div></div></div></div></div></div>