部署 [已解决] 无法给阿里云 OSS 上传图片的问题。

whitecrow · 2013年09月20日 · 最后由 liuliu 回复于 2016年05月26日 · 18814 次阅读

服务器用的阿里云,静态文件存储用的阿里云 OSS,在本地,无论开发环境或生产环境下,可以顺利上传图片到 OSS。但一旦部署到阿里云服务器后,就无法上传图片了。

阿里云 OSS 配置为公开可读。

用到了 Gem 'carrierwave-aliyun'

这是我用的 Gem:

#upload files
gem "carrierwave", "0.6.2"
gem 'mini_magick','3.3', require: false
gem 'rest-client'
gem 'carrierwave-aliyun'

这是我的 CarrierWave 配置:

CarrierWave.configure do |config|
  config.storage = :aliyun
  config.aliyun_access_id = "xxxxxx"
  config.aliyun_access_key = 'xxxxx'
  config.aliyun_bucket = "abc"
  # 你需要在 Aliyum OSS 上面提前创建一个 Bucket
  # 是否使用内部连接,true - 使用 Aliyun 局域网的方式访问  false - 外部网络访问
  config.aliyun_internal = false
  # 使用自定义域名,设定此项,carrierwave 返回的 URL 将会用自定义域名
  # 自定于域名请 CNAME 到 you_bucket_name.oss.aliyuncs.com (you_bucket_name 是你的 bucket 的名称)
  config.aliyun_host = "abc.oss.aliyuncs.com"
end

请问大家遇到过这个问题吗?请问如何解决?

没有用自定义域名的话,config.aliyun_host 不需要设置

#1 楼 @chaixl 注释掉了 aliyun_host 还是没有解决。因为本地可以顺利上传图片,就是部署到阿里云云服务器后上传失败。

哦,刚才没有看到本地可以成功上传。

设置应该没有问题,具体是什么错误?

#3 楼 @chaixl Rails 的 log 里面没有报错,只是是普通的更新或创建对象不成功。返回是:Completed 200 OK in 113ms

查看一下服务器环境和本地有何不同。

经常遇到的几种情况:

  1. 服务器上没有正确安装 ImageMagick
  2. 服务器上前端是否有用 nginx 之类的?有可能上传文件大小超出限制或者超时。
  3. 可以试一下上传到服务器本地是否可以成功,即 storage = :file

#5 楼 @chaixl 已解决,果然是没安装 ImageMagick 的原因啊,实在实在太感谢了 TAT。

#6 楼 @whitecrow 请问你是怎么安装 imageMagick 的,我已经安装了它,并且上传仍然不成功,,,我在想是不是安装错误!

#7 楼 @sensi 安装 sudo apt-get install imageMagick。你把配置信息发上来看看。

#8 楼 @whitecrow 已经成功运行,不是 imageMagick 的问题!谢谢!

怎样传多张图片到阿里云???

需要 登录 后方可回复, 如果你还没有账号请 注册新账号