我有一个Rails应用程序,配有carrierwave上传器,配置为在S3存储桶上使用carrierwave-aws。Rails S3 - CloudFront 401错误触发器基本Auth弹出框
该桶的权限是坏的,但我希望我固定的他们,现在上传似乎做工精细(我查了单个文件的权限,公共读检查)
Rails应用程序是使用CloudFront的,它已被配置为处理“正常”资产(CSS,JS等)和carrierwave-aws。
但是我仍然得到401错误,更糟的是,当这一切发生在屏幕上显示一个HTTP基本身份验证珀普,要求输入密码我分配
"NetworkError: 401 Unauthorized - https://xxxxxxx.cloudfront.net/uploads/user/avatar/xxxxxx/thumb_avatar.jpg "
上述错误触发一个HTTP基本身份验证窗口请求xxx.cloudfront.net
如果这是链接的,事实证明我确实在我的Rails网站上有这种认证(在我们开始生产之前)。
在CloudFront上,我配置了两个来源:我的Rails服务器(和css/js都可以,所以我猜这个是可以的)和S3 Bucket(不知道我怎么能真正测试这个)
所以
- 如何查看我的Rails - > Carrierwave-AWS - > CloudFront的流水线工作正常? (上传很好,上传后我无法从浏览器读取)
- 如何在网站出现401错误时从网站禁用HTTP基本身份验证?
编辑:我设置基本认证中的Rails ApplicationController中
def authenticate
if ENV["HTTP_BASIC_AUTH"] == "true"
authenticate_or_request_with_http_basic do |username, password|
username == "wxx" && password == "xxx!" or
end
end
end
你在哪里设置了Apache或其他东西的基本认证配置?因为这是我猜想的云端问题的根源。 – error2007s
嗯,是的,这是在我的Rails ApplicationController中完成的。但是,弹出窗口要求输入一个cloudfront url http basic auth,即使我输入了我的applicationcontroller的user/pw凭据,它也不起作用。 –
由于基本身份验证,云端无法从父服务器缓存文件?尝试禁用身份验证,然后看看它是否仍然发生。 – error2007s