From 78f9b1c08d635229dd42ab6a380425365b970b12 Mon Sep 17 00:00:00 2001 From: Daido Shota Date: Fri, 26 Feb 2021 01:57:47 +0900 Subject: [PATCH] Use nginx to delivery icon image --- nginx.conf | 6 ++++++ webapp/ruby/app.rb | 30 ++++++++++++++---------------- 2 files changed, 20 insertions(+), 16 deletions(-) diff --git a/nginx.conf b/nginx.conf index 1391d00..0eb7a6d 100644 --- a/nginx.conf +++ b/nginx.conf @@ -24,6 +24,12 @@ server { add_header Cache-Control public; } + location /icons/ { + root /home/isucon/isubata/webapp/ruby; + expires 24h; + add_header Cache-Control public; + } + location / { proxy_set_header Host $http_host; proxy_pass http://app:5000; diff --git a/webapp/ruby/app.rb b/webapp/ruby/app.rb index 4a41b40..dfeac9a 100644 --- a/webapp/ruby/app.rb +++ b/webapp/ruby/app.rb @@ -272,9 +272,7 @@ def user end if !avatar_name.nil? && !avatar_data.nil? - statement = db.prepare('INSERT INTO image (name, data) VALUES (?, ?)') - statement.execute(avatar_name, avatar_data) - statement.close + File.write("icons/#{avatar_name}", avatar_data) statement = db.prepare('UPDATE user SET avatar_icon = ? WHERE id = ?') statement.execute(avatar_name, user['id']) statement.close @@ -289,19 +287,19 @@ def user redirect '/', 303 end - get '/icons/:file_name' do - file_name = params[:file_name] - statement = db.prepare('SELECT * FROM image WHERE name = ?') - row = statement.execute(file_name).first - statement.close - ext = file_name.include?('.') ? File.extname(file_name) : '' - mime = ext2mime(ext) - if !row.nil? && !mime.empty? - content_type mime - return row['data'] - end - 404 - end + # get '/icons/:file_name' do + # file_name = params[:file_name] + # statement = db.prepare('SELECT * FROM image WHERE name = ?') + # row = statement.execute(file_name).first + # statement.close + # ext = file_name.include?('.') ? File.extname(file_name) : '' + # mime = ext2mime(ext) + # if !row.nil? && !mime.empty? + # content_type mime + # return row['data'] + # end + # 404 + # end private