文件 URL 和其实际位置之间的差异

作者: rustsadb创建于 2026年1月19日更新于 2026年1月19日

有些文件在存储中有不同的 URL 和实际文件名。我的上传器: class AttachmentUploader < CarrierWave::Uploader::Base def store_dir "uploads/#{model.attachable.class.to_s.underscore.split('/').last}_files" end def size_range 0..15.megabytes end def extension_allowlist %w(jpg jpeg gif png txt xlsx xls pdf csv doc docx rtf zip rar 7z gz tar.gz pptx ppt pages numbers) end def filename return unless original_filename array_name = original_filename.split('.') file_extension = array_name.last body_name = array_name.excluding(file_extension) "#{body_name.join('.')}_#{Time.current.strftime('%d.%m.%Y-%H:%M:%S')}.#{file_extension}" end end 示例问题: image_13.11.2025-10:29:32.jpg # 附件标识符 (attachment.file.identifier) /uploads/pass_person_files/image_13.11.2025-10%3A29%3A32.jpg # 附件 URL (attachment.file.url) 但文件 URL 显示了错误的位置。实际上,图像位于: /uploads/pass_person_files/image_13.11.2025-10%3A29%3A33.jpg # 存储中的文件 我注意到一个模式,即数据库中的已损坏记录的 created_at 字段具有 ~0.99 毫秒的值。 Thu, 13 Nov 2025 10:29:32.994930000 UTC +00:00 为了上传文件,我通常使用 Attachment.create!(...file:) 也许有人遇到过这样的问题吗?

内容来源: carrierwaveuploader/carrierwave