我正在尝试使用回形针和 AWS S3 存储上传图像
我已经为回形针设置了默认配置
config.paperclip_defaults = {
:storage => :s3,
:bucket => '<bucket_name>',
:s3_credentials => Rails.root.join('config', 'aws.yml').to_s
}
在我的模型中,我有这个
as_attached_file :img, :styles => { :medium => "300x300>", :thumbnail => "100x100>" }, :path => "assets/products/:attachment/:id/:style.:extension"
在控制器中,我有一个简单的属性更新,因为我的模型是首先创建的,并且在图像上传之后:
def upload_thumbnail
@product = Product.find(params[:id])
if @product.update_attribute(:img, params[:image])
render :json => { :done => true, :img_path => @product.img.url }
else
render :json => @product.errors }
end
end
当我上传图像时,我在控制台中出现此错误
[paperclip] Saving attachments.
[paperclip] saving assets/products/imgs/10/original.jpg
[AWS S3 200 4.134236 3 retries] put_object(:acl=>:public_read,:bucket_name=>"<bucket_name>",:content_length=>0,:content_type=>"image/jpeg",:data=>Paperclip::UploadedFilAdapter: image.jpg,:key=>"assets/products/imgs/10/original.jpg") AWS::Core::Client::NetworkError AWS::Core::Client::NetworkError
在 S3 中,图像是在指定的路径创建的,大小设置为 0 字节。我也注意到当插件试图调整图像大小时我得到了这个
[paperclip] Error while determining content type: Cocaine::CommandNotFoundError
但原始图像应该正确上传。我做错了什么?