Ana içeriğe atla

Drupal 8 Amazon S3 Metadata Ayarlama

Seyfettin Kahveci
Seyfettin Kahveci
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 Locations

Ofislerimiz

Drupart AR-GE

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

+90 262 678 8872

+90 216 706 12 58 

[email protected]

Londra

151 West Green Road, London, England

+44 203 815 6478

[email protected]

Newark

112 Capitol Trail Suite, A437 Newark DE, 19711

+1 (740) 666 6255

[email protected]

Wiesbaden

Hinterbergstraße 27
65207 Wiesbaden
Deutschland

+49 (0) 6151 – 492 70 23

[email protected]