【发布时间】:2017-06-28 10:25:39
【问题描述】:
使用carrierwave和fog gems将图像上传到S3;当我从 localhost:3000 执行此操作时,它工作得很好。但是在部署到 heroku 之后,当我尝试上传图像时,我得到了“出现问题”屏幕。如果我创建相同的帖子而不尝试上传图片,则其他所有帖子都可以正常发布。
同样,在本地,当我上传图片时,它会直接进入我在 S3 中的存储桶。为什么当我从 heroku 执行相同的操作时不会发生相同的事情??
我已经完成了所有的迁移和推送,我什至尝试添加了fog-aws gem(尽管aws 不是问题,heroku 是)。请帮忙! :(
products_controller.rb
def update
@product.category_id = params[:category_id]
respond_to do |format|
if @product.update(product_params)
format.html { redirect_to @product, notice: 'Product was successfully updated.' }
format.json { render :show, status: :ok, location: @product }
else
format.html { render :edit }
format.json { render json: @product.errors, status: :unprocessable_entity }
end
end
end
这里是 heroku 日志,只有错误。
2017-02-10T06:21:48.471592+00:00 app[web.1]: I, [2017-02-10T06:21:48.471528 #4] INFO -- : [4cc29852-5ad1-446c-8589-4d67bb97f2cc] Completed 500 Internal Server Error in 614ms (ActiveRecord: 9.3ms)
2017-02-10T06:21:48.472558+00:00 app[web.1]: F, [2017-02-10T06:21:48.472497 #4] FATAL -- : [4cc29852-5ad1-446c-8589-4d67bb97f2cc] Excon::Error::Forbidden (Expected(200) <=> Actual(403 Forbidden)
2017-02-10T06:21:48.472560+00:00 app[web.1]: excon.error.response
2017-02-10T06:21:48.472562+00:00 app[web.1]: :body => "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>AllAccessDisabled</Code><Message>All access to this object has been disabled</Message><RequestId>EB063C36E37005DB</RequestId><HostId>6J4nl+P2RoUKEg1D23Fb3dxokR0I5piyBK3/3wYVRmyGzyFxzFseVmTUoZ6GpMFMUiEVQSH2GVA=</HostId></Error>"
【问题讨论】:
-
顺便说一句,我会熬夜并积极检查这个,所以如果有代码我应该发布,请告诉我
-
能否请您检查heroku日志并发布错误
-
能否请您在
app/controllers/products_controller.rb中发布update操作的代码 -
您可以尝试更改用户策略。尝试授予 AmazonS3FullAccess 以测试它是否有效。
标签: ruby-on-rails heroku amazon-s3 upload fog