Drupal 8 Amazon S3 Metadata Ayarlama

Seyfettin KAHVECİ
Seyfettin KAHVECİ
20 dakika okuma süresi

Drupal 8'i amazon ile entegre etmek için S3 File System modülunu kullanabilirsiniz. Bu modül sayesinde Drupal sisteminizde bulunan tüm dosyaların veya istediğiniz file field'ların amazon tarafında barındırılmasını sağlayabilirsiniz.  Tüm dosyaların amazon tarafında barındırılmasını istiyorsanız Drupal tarafından sıkıştırılan js ve css dosyaları da amazon tarafında barındırılacaktır. JS ve CSS dosyalarınız amazon tarafında barındırıldığı için sıkıştırma işlemleri yapamayacaksınız bunun sonucunda GTMetrix ve PageSpeed puanlarınız düşük çıkacaktır.  Bunun için Drupal tarafından oluşturulmuş CSS ve JS dosyalarınızın sıkıştırılmış versiyonlarını kullanmanız gerekmektedir. Sistemde bulunan CSS ve JS dosyalarının sıkıştırılmış versiyonlarını yükleyebilmek için aşağıdaki kodu kullanmanız gerekmektedir.

function drupart_file_url_alter(&$uri) {
    
    if(strstr($uri,"public")==true && (strstr($uri,".js")==true || strstr($uri,".css")==true)){
        $uri.=".gz";
    }
}

İlgili kod'un sonucunda GTMetrix ve Pagespeed puanlarınızda yükselme meydana gelecektir.  Eğer  bu işlem sonucunda site düzgün görüntülenmez ise aşağıdaki kodu kullanmanız gerekmektedir. Bu çalışmadan sonra siteniz düzgün ve daha da hızlı açılmaya başlayacaktır.

function drupart_s3fs_upload_params_alter(array &$upload_params) {
  if(isset($_SESSION['girdi_css'])){
  	$upload_params['ContentType'] = "text/css";
  	$upload_params['CacheControl'] = "max-age=3153600";
  	$upload_params['ContentEncoding'] = "gzip";
    unset($_SESSION['girdi_css']);
  }
  elseif($upload_params['ContentType']=="text/css"){
    $_SESSION['girdi_css'] = 1;
  }
  
  if(isset($_SESSION['girdi_js'])){
  	$upload_params['ContentType'] = "application/javascript; charset=utf-8";
  	$upload_params['CacheControl'] = "public, max-age=30672000";
  	$upload_params['ContentEncoding'] = "gzip";
    unset($_SESSION['girdi_js']);
  }
  elseif($upload_params['ContentType']=="application/javascript"){
    $_SESSION['girdi_js'] = 1;
  }
}

Ofislerimiz

Drupart İstanbul

GOSB Teknopark Hi-Tech Bina 3.Kat
B3 Gebze - KOCAELİ

+90 262 678 8872 

[email protected]

Drupart Frankfurt

Media4People Bleichstr. 26 64283 Darmstadt
Deutschland

+49 (0) 6151 – 492 70 23 

[email protected]

Drupart Dublin

20 Harcourt Street, Dublin 2, D02 H364

+353 (87) 198 6950 

[email protected]