0

사용자가 아바타를 업로드하거나 변경할 수있는 레일즈 애플리케이션에 루비가 있습니다. 먼저 Amazon S3에 이미지를 저장했지만 콘텐츠 콘텐츠가 서서히 제공되고 Amazon Cloudfront를 사용하기로 결정되었음을 알게되었습니다.Amazon CloudFront에서 객체를 무효화 할 필요가 없습니다.

아바타 업로드 및 가져 오기에는 문제가 없습니다. 그러나 업데이트 된 사진은 즉시 변경되지만 클라우드 프런트 API를 통해 무효화 할 것으로 예상됩니다. 그리고 이미지를 업로드하는 데는 많은 시간이 걸립니다.

이 시점에서 클라우드 프런트를 올바르게 사용할지 여부를 결정할 수 없습니다.

가 설정/초기화 안쪽이 내 carrierwave.rb 파일 :

CarrierWave.configure do |config| 

    config.fog_provider = 'fog/aws'       
    config.fog_credentials = { 
    provider:    'AWS',      
    aws_access_key_id:  'key',  
    aws_secret_access_key: 'value',  
    region:    'us-east-1' 
    } 

    config.storage :fog 
    config.asset_host  = 'http://images.my-domain.com' 
    config.fog_directory = 'bucket_name'       
    config.fog_public  = true 
    config.fog_attributes = { cache_control: "public, max-age=315576000" } 
end 

내가 누락 무엇을 볼 수없는 이유는 무엇입니까? 클라우드 프론트를 올바르게 사용하고 있음을 어떻게 확신 할 수 있습니까?

감사합니다.

답변

1

귀하의 이미지는 CloudFront에 저장되지 않고 CloudFront의 CDN을 통해 제공됩니다.

는 CF를 통해 게재 된 이미지에 대한

첫 번째 요청은 다음과 같습니다 :

이미지에 대한 두 번째 요청이 단지 다음과 같습니다
Browser -> CloudFront -> S3 
          | 
Browser <- CloudFront <- 

:

Browser -> CloudFront 
        | 
Browser   <- 

두 번째 요청의 공격 결코 CF CF가 있기 때문에 해당 URL에 대한 결과를 캐시합니다.

지금 아바타가 S3에 업로드되어 새로운 URL이 생성되어 즉각적인 업데이트가 이루어 졌기 때문에 귀하의 아바타가 즉시 업데이트 될 것입니다. 이것은 당신이 그것이 일하기를 원하는 방식입니다.