If I create a thread and upload an image the img src is set to my S3_CDN_URL. If I upload a zip file the URL is at /uploads and redirect directly to my bucket instead of using the S3_CDN_URL. I do not have DISCOURSE_CDN_URL set - the guide indicate it doesn’t affect this issue.
Thank you.
I’ve assigned the job to some local friend of mine. He is looking into it.
Though on your asking I selected this option just now. Use CDN URL for all the files uploaded to s3 instead of only for images.
But there seems to be some other problem. He has shifted s3 storage to local server. Now many of my old posts, which if had 10 photos, around half are displaying and other half not. (example of one such topic)
He would work on resolving this, coming weekend.
Earlier, before asking him, I naively selected the option to have all images included in my backups, then restored that backup thinking that it’d restore the images to local server, thinking that this would be enough to move all my images from s3 to local.
But this is not so simple (as I’m finding on many related topics on meta).
[ציטוט=“Bathinda, פוסט:4, נושא:177000”]
תודה.
היי את העבודה לחבר שלי מקומי. הוא בודק את זה.
[/ציטוט]
מצטער. התייחסתי לבעיה אחרת.
אני בטוח שיש לך, כנראה, בעיה יותר מורכבת.
[ציטוט=“Bathinda, פוסט:4, נושא:177000”]
הוא העביר את אחסון s3 לשרת מקומי.
[/ציטוט]
זה בהחלט מסובך.
אני חושב שהתמונות החסרות באותו פוסט נגרמות מכך שרשומת ההעלאה לא קיימת, אז תצטרך לבצע משהו כדי להחזיר את התמונה הזאת. ייתכן שאני טועה.
אם אני צודק, כך פיתרתי את הבעיה הדומה שפגשתי בה לפני כן. אני לא מציע תמיכה חינמית מעבר לסקריפט הזה.
def process_uploads
begin
# קריאת רשימת שמות הקבצים
filenames = File.readlines('/shared/uploads/allfiles.txt').map(&:strip)
count = 0
filenames.each do |filename|
# הוסף את /shared לפני שם הקובץ
filename.gsub!(/\.\//,"")
full_path = File.join('/shared/uploads/default/original/', filename)
begin
# בדוק אם הנתיב קיים ומדובר בקובץ רגיל (לא תיקייה)
count += 1
if File.exist?(full_path) && File.file?(full_path)
# פתח את הקובץ
File.open(full_path, 'r') do |tempfile|
# צור העלאה עם הפרמטרים המוגדרים
u = UploadCreator.new(tempfile, 'imported', {}).create_for(-1)
puts "#{count} -- #{u.id}: #{u.url}"
end
else
puts "אזהרה: הנתיב לא נמצא או אינו קובץ רגיל: #{full_path}"
end
rescue => e
puts "שגיאה בעיבוד הקובץ #{full_path}: #{e.message}"
# המשך לקובץ הבא גם אם הקובץ הנוכחי נכשל
next
end
end
rescue Errno::ENOENT
puts "שגיאה: לא ניתן למצוא את files.txt"
rescue => e
puts "שגיאה בקריאת files.txt: #{e.message}"
end
end
# ביצוע העיבוד
process_uploads;