gpt4 book ai didi

ruby-on-rails - 在 Amazon S3 carrierwave 上重新上传图片

转载 作者:数据小太阳 更新时间:2023-10-29 07:38:55 24 4
gpt4 key购买 nike

我已将图像上传到 amazon s3 bucket。当我尝试 recreate_versions! 时,它给了我一个 nil body 异常。

我认为这是由于我们代码中之前的 uploader 设置发生了变化。但是,当我执行 pr.image.url 时,它仍然会给我原始图像,所以我尝试的如下:

begin 
User.all.each do |pr|
if pr.user.present?
pr.remote_avatar_url = pr.avatar.url
pr.save!
end
end
rescue
end

但是它抛出一个错误:

ActiveRecord::RecordInvalid: Validation failed: Avatar trying to download a file which is not served over HTTP

我知道这是载波异常。我想做的是,我想重新上传所有图片(因为 pr.avatar.url 给我原始图片),但我不知道该怎么做。任何帮助将不胜感激。

最佳答案

你是correct试图将远程 URL 存储在名为 remote_avatar_url 的属性中。

CarrierWave 在尝试将无效 URL 保存到模型时抛出 Validation failed: ATTRIBUTE trying to download a file which is not served over HTTP 异常。更具体地说,CarrierWave::Uploader::Download 在下载的文件“scheme”属性与正则表达式/^https/不匹配时引发 CarrierWave::DownloadError URL 不以“https”开头)。可以查看这个逻辑here . (具体请参见第 31 和 69 行。)

我不确定这是否是问题所在,但您可以尝试检查 pr.avatar.url 以查看它是否以 https 前缀开头,然后再将其分配给 remote_avatar_url

我希望这至少能有所帮助。

关于ruby-on-rails - 在 Amazon S3 carrierwave 上重新上传图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40689658/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com