このコミットが含まれているのは:
2026-06-24 00:38:29 +09:00
コミット 510cbb0d78
4個のファイルの変更66行の追加11行の削除
+15 -6
ファイルの表示
@@ -1,15 +1,24 @@
require 'digest'
class MaterialFileSha256
def self.from_blob blob
def self.from_blob blob, allow_download: false
sha256 = blob.metadata['sha256']
return sha256 if sha256.present?
return nil unless allow_download
blob.open do |file|
sha256 = Digest::SHA256.file(file.path).hexdigest
blob.metadata['sha256'] = sha256
blob.save! if blob.changed?
sha256
begin
blob.open do |file|
sha256 = Digest::SHA256.file(file.path).hexdigest
blob.metadata['sha256'] = sha256
blob.save! if blob.changed?
sha256
end
rescue ActiveStorage::FileNotFoundError, ArgumentError => error
Rails.logger.warn(
"MaterialFileSha256.from_blob failed for blob_id=#{blob.id}: " \
"#{error.class}: #{error.message}",
)
nil
end
end