Ruby on rails 3 使用X-Accel-Redirect下载文件时出现SignatureDesNotMatch错误

Ruby on rails 3 使用X-Accel-Redirect下载文件时出现SignatureDesNotMatch错误,ruby-on-rails-3,nginx,amazon-s3,Ruby On Rails 3,Nginx,Amazon S3,有几个问题与此相关,但这个用例略有不同 在Rails中-在我的控制器中,我显式地设置了响应头: response.headers['X-Accel-Redirect'] = "some_url" Nginx配置 location ~* ^/some_url/(.*){ set $s3_bucket '$arg_bucket_name'; set $aws_access_key 'AWSAccessKeyI

有几个问题与此相关,但这个用例略有不同

在Rails中-在我的控制器中,我显式地设置了响应头:

   response.headers['X-Accel-Redirect'] = "some_url"
Nginx配置

   location ~* ^/some_url/(.*){     

            set $s3_bucket        '$arg_bucket_name';
            set $aws_access_key   'AWSAccessKeyId=$arg_AWSAccessKeyId';
            set $url_expires      'Expires=$arg_Expires';
            set $url_signature    'Signature=$arg_Signature';
            set $url_full         '$1?$aws_access_key&$url_expires&$url_signature';
            proxy_hide_header Content-Disposition;
            add_header Content-Disposition 'attachment; filename=$arg_filename';
            proxy_hide_header      x-amz-id-2;
            proxy_hide_header      x-amz-request-id;
            proxy_buffering        off;
            proxy_intercept_errors on;
            resolver               4.2.2.2 8.8.8.8 valid=300s;
            proxy_pass             https://$s3_bucket/$url_full;
}
用它通过nginx下载100个文件,在少数情况下我会出错

          SignatureDoesNotMatch

          The request signature we calculated does not match with the signature you provide.

这些URL中是否有不寻常的字符,如非字母数字ASCII等效单字节符号,如
+
*
?或者任何多字节?使用相同的URL是否可以重复该行为?是否可以编辑以添加完整的输出错误XML?尽管外观不匹配,但签名不包含除您的访问密钥id以外的任何敏感数据。您的访问密钥id在技术上也不敏感(只有密钥是),但如果需要,您可以删除它。@Michael sqlbot。。是的,我的签名中有+。。签名为6l6B0ZiXt5yJskENVJWGGCWPV+Q=如何解决此问题?请将每个
+
替换为
%2B
。不要笑。这些URL中是否有不寻常的字符,如非字母数字ASCII等效单字节符号,如
+
*
?或者任何多字节?使用相同的URL是否可以重复该行为?是否可以编辑以添加完整的输出错误XML?尽管外观不匹配,但签名不包含除您的访问密钥id以外的任何敏感数据。您的访问密钥id在技术上也不敏感(只有密钥是),但如果需要,您可以删除它。@Michael sqlbot。。是的,我的签名中有+。。签名为6l6B0ZiXt5yJskENVJWGGCWPV+Q=如何解决此问题?请将每个
+
替换为
%2B
。别笑。