上传到dropbox的图像过了一段时间就不会显示了——Rails



我正在使用ckeditor,并将图像上传到我使用carrierwaveminimagick配置的dropbox。几天后,尽管图片没有出现在博客上,但它在控制台中显示了以下内容

Failed to load resource: the server responded with a status of 401 (Not Authorized)

示例链接(资源图像)

https://dl.dropboxusercontent.com/1/view/5qo62va4g4uwsqn/uploads/ckeditor/pictures/1/content_1.png

如果我去了ckeditor,再次浏览图像并重新加载它,它会工作几天,然后仍然有效。

我有什么东西不见了吗?

由于carrierwave-dropbox-gem使用了API的media部分和注释中指出的greg,因此此链接将在几个小时后过期。

这是我使用shares 使其工作所遵循的程序

首先找到carrierwave-dropbox gem安装位置导航到

libcarrierwavestoragedropbox.rb

并将线路CCD_ 11更改为以下

@client.shares(@path, short_url = false)["url"]

接下来在application_helper.rb 中制作一个助手方法

  def rewrite_url(url)
    u = url
    u.slice! "dl=0"
    u = u + "raw=1"
    u
  end

本质上,它所做的只是从返回的字符串中删除dl=0部分,因为它指向dropbox上的预览,并在末尾添加raw=1以实际显示直接文件。

接下来,在图像标签上这样称呼它

<%= image_tag rewrite_url(@question.image_url(:resized)) %>

:resized是因为我调整了图像的大小,关键部分是将图像url包装到辅助中

read_more:更多信息

非常感谢Greg的帮助。

最新更新