3

Google Cloud Storage를 이미지 용으로 사용하는 Rails 애플리케이션이 있습니다. 각보기에는 약 8 개의 이미지가 있으며 사용자가 페이지를로드하려고하면 GCS에 대한 요청으로 인해 완료하는 데 5 초 이상 걸립니다.Google Cloud Storage 요청은 Paperclip 및 Rails를 사용하여 느림.

요청은 다음과 같은 설정으로 종이 클립에 의해 만들어집니다 : 내보기에서

config.paperclip_defaults = { 
    storage: :fog, 
    fog_credentials: { 
    google_storage_access_key_id: myAccessKey, 
    google_storage_secret_access_key: mySecretKey, 
    provider: 'Google' 
    }, 
    fog_public: true, 
    fog_directory: 'mybucket' 
} 

을 나는 각각의 이미지를이 방법으로 호출

<%= image_tag myAsset.image.url %> 

같은 결과를 달성하기 위해 어떤 빠른 방법이 있나요를?

지연로드는 해결 방법이 아니라 해결 방법 인 것처럼 보입니다. 잘못된 것입니까?

여기에 새로운 유물 악명 분석

enter image description here

+0

GCS 리소스의 양은 어느 정도입니까? 그것은 단지 하나의 이미지입니까? 버킷의 클래스 표준, DRA 또는 니어 라인이 있습니까? –

+0

모든보기에는 약 300kb의 약 8 개의 이미지가 있습니다. 그러면 양동이는 _ 표준입니다. –

+0

이미지를로드하는 데 5 초가 걸리고 페이지에 8 개의 300kb 이미지가있는 경우 약 480kbps입니다. 인터넷 속도가 그 정도 밖에되지 않는 인터넷 사용자가 많이 있습니다. 문제의 인터넷 사용자가 얼마나 느린 지 아십니까? –

답변

1

가 주어진 요청에 대한 이미지가 백엔드마다 행진 (녹색 구글 클라우드 스토리지 요청을 속함)? 그렇다면 이미지에 캐시를 사용하여 첫 번째 요청에서 만 시간을 잽니다. 당신이 제안한 것과 같이 사용자 인증이 지연된로드 후에 캐시로 이미지를 가져 오기 시작할 수도 있습니다.

+1

안녕하세요 @melgart, 느린 점은 Paperclip과 URL 생성 방법 때문이라는 것을 알았습니다. 자세한 내용은 다음을 참조하십시오. https://github.com/thoughtbot/paperclip/issues/2337 –

+0

nice! 모든 사람들이 귀하의 솔루션을 볼 수있는 지식을 다시 여기에 가져와 줘서 고맙습니다. 나중에 시간을 보느라 시간을 절약 할 수 있습니다. –

0

나는이 모든 것을 정리했다고 말할 수는 없지만 적어도 속도는 빨라진다.

fog_host 네트워크 요청을 피하는 것으로 보입니다.

# config/application.rb 
module Parasite 
    class Application < Rails::Application 

    config.paperclip_defaults = { 
     fog_host: 'http://mybucektname.storage.googleapis.com', 
     # ... other options 
    } 

    end 
end 

더 파고 나는 Paperclip Github Page에 오픈 the code 또는이 스레드를 확인하려면

.