【发布时间】:2026-01-24 19:40:01
【问题描述】:
现有项目在 ruby 2.3.1 中,并将版本升级到 3.0.1 (rails 6.1.4) 以及相关的 gem。
将 gem 更新为 "paperclip" 到 "kt-paperclip"。
上传文档时出现以下错误。
错误:
[回形针] 试图将 /tmp/RackMultipart20210809-20058-nn1h6f.jpeg 链接到 /tmp/a87ff679a2f3e71d9181a67b7542122c20210809-20058-f12xva.jpeg
[回形针] 试图将 /tmp/a87ff679a2f3e71d9181a67b7542122c20210809-20058-f12xva.jpeg 链接到 /tmp/a87ff679a2f3e71d9181a67b7542122c20210809-20058-tr9ezt.jpe
[回形针] 试图将 /tmp/a87ff679a2f3e71d9181a67b7542122c20210809-20058-f12xva.jpeg 链接到 /tmp/a87ff679a2f3e71d9181a67b7542122c20210809-20058-ddtnlx.jpe
[回形针] 试图将 /tmp/a87ff679a2f3e71d9181a67b7542122c20210809-20058-f12xva.jpeg 链接到 /tmp/a87ff679a2f3e71d9181a67b7542122c20210809-20058-ux65dm.jpe
以下是我现有的设置:
has_attached_file :file_local,
path: ":rails_root/public/system/:attachment/:id/:style/:basename.:extension",
url: "/system/:attachment/:id/:style/:basename.:extension"
has_attached_file :file,
processors: [:format_delegator],
path: ":configured_path",
whiny: false,
styles: {rectangle: ["1280x640#", :jpg],
narrow: ["640x", :jpg],
large: ["1980x", :jpg],
square: ["480x480#", :jpg],
thumbnail: ["1920x1080#", :jpg],
encoded: {output: "html5",
processors: [:transcoder]}},
default_url: :set_default_url,
storage: :s3,
url: SETTINGS[:amazon][:s3_alias_url],
s3_host_name: SETTINGS[:amazon][:host_name],
s3_host_alias: SETTINGS[:amazon][:cloudfront_host],
s3_permissions: :private,
s3_protocol: :https,
s3_region: SETTINGS[:amazon][:region],
s3_credentials: {
bucket: SETTINGS[:amazon][:bucket]
}
有谁知道,如何解决上述问题? 我需要检查哪个配置来跟踪问题?
【问题讨论】:
-
哇——有很多个 Rails 版本可以跳过!您是直接从 Rails 2 到 Rails 6,还是浏览了各个版本并检查了所有更改? FWIW,您也许可以删除 Paperclip 并使用 Rails 中的 ActiveStorage 工具。
-
我已经一一更新了所需的gem,还更新了相关的代码更改。除了文件上传外,一切都按预期工作。现在,回形针代码被更多地使用,所以如果有任何方法可以用回形针解决,我想用它。注意:我已将 ruby 版本从 2.3.1 更新到 3.0.1
-
只是您已经跳过了 很多 的 Rails 版本以及随之而来的更改和弃用,而且这些年来,我在 Rails 中看到了很多关于 Paperclip 的帖子已经改变。查看哪个 Rails 版本破坏了您的 Paperclip 代码可能会很有用。不过,恐怕我无法专门为 Paperclip 提供帮助。祈祷有人能来!