Konuyu görüntüle
IUCODERS FORUM > Programlama > JAVA > Amazon S3 Cache Problemi
Yazar
extreme


avatar
Kahramanmaras
admin
Kayıt: 24.10.2006
29.11.2012-12:47 #78632
Kullandığım web sitesindeki büyük statik dosyaların cachelenmesi için amazon S3'ü tercih etmiştim. CloudFront'a domaini ekledikten sonra içerikleri dinamik olarak almasını istiyorum. Bana ürettiği link üzerinden dosyaları alabiliyorum ama her seferinde gerçek sunucuya tekrar gidiyor. Bunu engellemenin bir yolu varmı?





The Man Who Loved Algorithm&Ubuntu.
www.burakamasyali.com





Yazar
orhan


avatar
istanbul
admin
Kayıt: 17.11.2005
29.11.2012-20:18 #78633
şimdi cache olayi şoyle yapılıyor.
sen dosyalarina expire header ekliyorsun. bi filter , apache nin mod bilmem nesi ile.
browser o dosyalari ilk ziyaretinde alir. atiyorum sen 1 haftalik cache koydun.
browser ikinci gidişinde server ona 304 döner. browser da diskten okur.
mantık bu.





N/A
Yazar
orhan


avatar
istanbul
admin
Kayıt: 17.11.2005
29.11.2012-20:22 #78635
browser degil de kendi yazdigin bi httpclient var ise 304 ü ona göre handle etmen lazim.
amazon bunun icin X bi uygulama sunuyorsa onu bilmem.





N/A
Yazar
extreme


avatar
Kahramanmaras
admin
Kayıt: 24.10.2006
04.12.2012-08:55 #78636
Ajax ile ilgili çıkan bir problemden dolayı şöyle bir filter eklemiştik.

public class NoCacheFilter implements Filter {

    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
    }

    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {

        HttpServletRequest req = (HttpServletRequest) request;
        HttpServletResponse res = (HttpServletResponse) response;

        if (!req.getRequestURI().startsWith(req.getContextPath() + ResourceHandler.RESOURCE_IDENTIFIER)) { // Skip JSF resources (CSS/JS/Images/etc)
            res.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1.
            res.setHeader("Pragma", "no-cache"); // HTTP 1.0.
            res.setDateHeader("Expires", 0); // Proxies.
        }
        chain.doFilter(req, res);
    }

    @Override
    public void destroy() {
    }


Sanırım bu yüzden sayfa çok yavaş kaldı. Bi düzeltip senin söylediğin gibi değiştireyim. Teşekkürler.





The Man Who Loved Algorithm&Ubuntu.
www.burakamasyali.com





Yazar
orhan


avatar
istanbul
admin
Kayıt: 17.11.2005
04.12.2012-21:58 #78637
static dosyalarini bu filterdan cikarman lazım.nocache deidğin için her seferinde browser yeniden istiyor dosyayi.
mesela oraya static dosyalar için expire verip lastmodifed date e + 10 gün ekleyebilirsin.





N/A
Del.icio.us
Digg
Facebook
Furl
Google
Blink
Simpy
Spurl
Y! MyWeb