我已经使用carrierwave、S3 和fog-aws 为我的rails 应用程序实现了文件上传。无论文件大小如何,它都可以在我的本地开发环境中运行良好。但是当部署到 AWS 时,文件上传 < 1MB 成功,任何 > 1MB 都会导致ERR_CONNECTION_RESET
Chrome 中出现“连接已重置”并且 Firefox 中出现“连接已重置”。
以下是我使用的宝石。
gem 'carrierwave', '~> 1.0'
gem 'fog-aws', '~> 1.1'
以下是我的carrierwave.rb
CarrierWave.configure do |config|
config.fog_provider = 'fog/aws'
config.fog_credentials = {
provider: "AWS",
aws_access_key_id: ENV["S3_KEY"],
aws_secret_access_key: ENV["S3_SECRET"],
region: ENV["S3_REGION"]
}
config.fog_directory = ENV["S3_BUCKET"]
end
以下是我的上传者。
class AttachmentUploader < CarrierWave::Uploader::Base
storage :fog
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
end