FIX: retrieve original filename from s3 object's content disposition header

approved
#1

FIX: retrieve original filename from s3 object’s content disposition header

diff --git a/lib/s3_inventory.rb b/lib/s3_inventory.rb
index 35e8139..69d78d8 100644
--- a/lib/s3_inventory.rb
+++ b/lib/s3_inventory.rb
@@ -85,10 +85,11 @@ class S3Inventory
       if result.count >= 1
         key = result[0]["key"]
         data = @s3_helper.object(key).data
+        filename = (data.content_disposition&.match(/filename=\"(.*)\"/) || [])[1]
 
         upload_id = Upload.create!(
           user_id: Discourse.system_user.id,
-          original_filename: "",
+          original_filename: filename || File.basename(key),
           filesize: data.content_length,
           url: File.join(Discourse.store.absolute_base_url, key),
           sha1: sha1,

GitHub sha: 40328f05

#2

Little Ruby trick that I like to use when extracting something from a string using a regexp

filename = (data.content_disposition || "")[/filename="(.*?)"/i, 1]
1 Like
Approved #3