v0.26.2 Modify upload attachment code to try and make Discourse happy

This commit is contained in:
David Sainty 2024-07-02 20:01:46 +10:00
parent 382fd239a2
commit 017f99c88b

View File

@ -1,5 +1,5 @@
# gossamer threads migration-import code # gossamer threads migration-import code
# v0.26 # v0.26.2
require 'mysql2' require 'mysql2'
require 'open-uri' require 'open-uri'
@ -359,28 +359,36 @@ class GossamerForumsImporter < ImportScripts::Base
# Use the correct content type and SHA1 hash for the upload # Use the correct content type and SHA1 hash for the upload
# content_type = `file --brief --mime-type #{file.path}`.strip # content_type = `file --brief --mime-type #{file.path}`.strip
# sha1 = Digest::SHA1.file(file.path).hexdigest
# Generate SHA1 hash for the file
sha1 = Digest::SHA1.file(file.path).hexdigest
# upload = Upload.create!( # upload = Upload.create!(
upload = Upload.new( upload = Upload.new(
user_id: user_id, user_id: user_id,
original_filename: filename, original_filename: filename,
filesize: file.size, filesize: file.size,
sha1: Digest::SHA1.file(file.path).hexdigest sha1: sha1,
url: gossamer_url
# content_type: content_type, # content_type: content_type,
# origin: 'composer', # origin: 'composer',
# retain_hours: nil # retain_hours: nil
) )
# Use Discourse's internal method to upload the file # Use FileStore::LocalStore to store the file
file.rewind store = FileStore::LocalStore.new
Discourse.store.upload(file, upload.sha1) upload.url = store.store_file(file, store.get_path_for('original', upload.id, upload.sha1, File.extname(file.path)))
# # Use Discourse's internal method to upload the file
# file.rewind
# Discourse.store.upload(file, upload.sha1)
# # Move the file to the correct location # # Move the file to the correct location
# upload_path = Upload.get_path_for_file(upload.sha1) # upload_path = Upload.get_path_for_file(upload.sha1)
# FileUtils.mkdir_p(File.dirname(upload_path)) # FileUtils.mkdir_p(File.dirname(upload_path))
# FileUtils.mv(file.path, upload.path) # FileUtils.mv(file.path, upload.path)
# Save the upload object
upload.save! upload.save!
upload upload
rescue => e rescue => e