Entegrasyon

Kendi depolamanız · WordPress + WooCommerce

WooCommerce AWS S3

Alter Product eklentisi, kullanıma hazır bir AWS S3 depolama modülü içerir. Eklentinin desteklediği dosya gruplarını kendi özel bucket’ınızda saklayın, WordPress üzerinden bağlayın ve mevcut dosyaları eklentinin araçlarıyla taşıyın.

Alter Product, bağlı depolamanın kapasitesini artırmanız için ek depolama kapasitesi ücreti almaz. AWS; depolama, istek ve aktarım kullanımını sizin hesabınıza faturalandırır. WordPress barındırma maliyetleri ile planın ve embed oturumlarının olağan kuralları geçerliliğini korur.

Talimatlar eklentinin kurulum kılavuzuna dayanır. AWS konsolundaki etiketler İngilizce bırakılmıştır.

Önce WordPress + WooCommerce eklentisini kurunBu isteğe bağlı depolamayı yapılandırmadan önce Alter Product’ı mağazaya bağlayın.

Depolama, dosya sunumu ve maliyetler

S3, eklentinin dosya nesnelerini saklar. Dosyaların tarayıcıya yetkili biçimde sunulmasından WordPress sorumlu olmaya devam eder.

Eklenti için özel depolama

Tarayıcı doğrudan S3’ten indirme yapmaz. WordPress, özel bucket’tan dosyaları alıp doğrular, ardından kendi uç noktaları üzerinden sunar. S3 CORS alanını boş, Block Public Access ayarını etkin bırakın; bu yapı herkese açık bir bucket veya doğrudan CDN bağlantısı değildir.

Modül, desteklenen Alter Product dosya gruplarını kapsar. Bir bucket bağlamak WordPress’teki tüm dosyaları taşımaz ve gömülü araçların sınırlarını değiştirmez.

Tarayıcı dosyaları WordPress üzerinden ister; WordPress özel bir AWS S3 bucket’ına bağlanır.
Dosyalar WordPress üzerinden sunulur. Özel S3 bucket’ı doğrudan tarayıcıya açılmaz.

Kullandığınız kaynaklar için AWS’ye ödeme yapın

Alter Product, bağlı bucket’ın depolama kapasitesini artırmak için ek ücret almaz. AWS ücretleri kullanıma, bölgeye ve depolama sınıfına bağlıdır; sabit bir ücret varsaymak yerine güncel S3 fiyatlarını inceleyin.

Dosyaları WordPress sunduğu için trafik, barındırma hizmetinizin bant genişliği kullanımına da sayılabilir. S3, barındırma aktarımının sıfır olacağını veya sınırsız sunucu aktarım kapasitesini garanti etmez.

Desteklenen ayarlarla bir bucket oluşturun

Aşağıdaki alan adları, İngilizce AWS konsoluyla ve eklentinin yerleşik kurulum kılavuzuyla aynıdır.

Genel amaçlı bir bucket oluşturun

AWS’ye giriş yapın, Amazon S3’ü açın ve General purpose buckets → Create bucket seçeneğini seçin. Bir bölge ve küçük harfler, rakamlar ve kısa çizgilerden oluşan, nokta içermeyen bir ad belirleyin. AWS’nin eklediği son ekler dahil bucket adının tamamını kopyalayın.

  1. Tablodaki ayarları uygulayın ve Create bucket seçeneğini seçin.
  2. Bucket adının tamamını, bölgesini ve bucket sahibinin 12 haneli AWS hesap kimliğini saklayın.
  3. Cross-origin resource sharing (CORS) alanını boş bırakın. S3 istekleri WordPress sunucusundan gelir.
Eklentinin S3 kurulum kılavuzunda kullanılan ayarlar
AWS alanıAyar
Bucket typeGeneral purpose
Bucket namespaceAccount Regional namespace (önerilen)
Object OwnershipACLs disabled / Bucket owner enforced
Block Public AccessBlock all public access (dört ayarın tamamı)
Bucket VersioningEnable
Default encryptionServer-side encryption with Amazon S3 managed keys (SSE-S3 / AES256)
Bucket KeyDisable
Advanced settings → Object LockDisable

HTTPS kullanımını zorunlu kılın

Bucket’ı herkese açmadan veya nesne erişimi vermeden bir aktarım kuralı ekleyin.

Bucket politikasını ekleyin

Permissions → Bucket policy → Edit yolunu açın. Her iki EXAMPLE-BUCKET değerini bucket adının tamamıyla değiştirin. Zaten bir politika varsa mevcut ifadeleri koruyun ve belgenin tamamını inceledikten sonra bu kuralı ekleyin.

  1. Düzenleyicinin mesajlarını kontrol edin ve Save changes seçeneğini seçin.
  2. Kuralın kaydedildiğini doğrulayın. Block all public access ayarını etkin tutun.
Bucket politikası JSON’u
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "DenyInsecureTransport",
      "Effect": "Deny",
      "Principal": "*",
      "Action": "s3:*",
      "Resource": [
        "arn:aws:s3:::EXAMPLE-BUCKET",
        "arn:aws:s3:::EXAMPLE-BUCKET/*"
      ],
      "Condition": {
        "Bool": {
          "aws:SecureTransport": "false",
          "aws:PrincipalIsAWSService": "false"
        }
      }
    }
  ]
}

Kısıtlı IAM erişimi oluşturun

AdministratorAccess veya AmazonS3FullAccess yerine bu bucket ve öneke özel bir politika kullanın.

Eklenti politikasını oluşturun

IAM → Policies → Create policy → JSON bölümüne aşağıdaki belgeyi yapıştırın. Her EXAMPLE-BUCKET değerini bucket adının tamamıyla değiştirin. alter-product öneki, WordPress’teki Folder prefix ile aynı olmalıdır; farklı bir önek seçerseniz her nesne Resource değerinde değiştirin.

  1. Politikayı doğrulayın, Next seçeneğini seçin ve AlterProductS3Storage gibi bir ad verin.
  2. Create policy seçeneğini seçin ve kullanıcı yapılandırması için adını saklayın.
IAM politikası JSON’u
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "ReadRequiredBucketControls",
      "Effect": "Allow",
      "Action": [
        "s3:GetBucketVersioning",
        "s3:GetBucketOwnershipControls",
        "s3:GetBucketPublicAccessBlock",
        "s3:GetEncryptionConfiguration"
      ],
      "Resource": "arn:aws:s3:::EXAMPLE-BUCKET"
    },
    {
      "Sid": "WriteAndReadVersionedPluginObjects",
      "Effect": "Allow",
      "Action": [
        "s3:PutObject",
        "s3:GetObjectVersion"
      ],
      "Resource": [
        "arn:aws:s3:::EXAMPLE-BUCKET/alter-product/objects/*",
        "arn:aws:s3:::EXAMPLE-BUCKET/alter-product/.storage-tests/*"
      ]
    },
    {
      "Sid": "RecoverJournalOwnedObjects",
      "Effect": "Allow",
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::EXAMPLE-BUCKET/alter-product/objects/*"
    },
    {
      "Sid": "DeleteOnlyConnectionTestVersions",
      "Effect": "Allow",
      "Action": "s3:DeleteObjectVersion",
      "Resource": "arn:aws:s3:::EXAMPLE-BUCKET/alter-product/.storage-tests/*"
    }
  ]
}

Özel bir kullanıcı ve erişim anahtarı oluşturun

IAM → Users → Create user seçeneğini seçin. Provide user access to the AWS Management Console kutusunu işaretlemeyin.

  1. Next → Attach policies directly seçeneğini seçin ve yalnızca yukarıdaki politikayı ekleyin. Create user işlemini tamamlayın.
  2. Bu kullanıcının Security credentials → Access keys → Create access key bölümünü açın. Eklentinin bu elle yapılandırılması için Other → Next, ardından Create access key seçeneğini seçin.
  3. Access key ID ve Secret access key değerlerini bir parola yöneticisine kaydedin. Gizli anahtar yalnızca bir kez gösterilir. Bunları mesajlara veya ekran görüntülerine değil, HTTPS üzerinden doğrudan WordPress’e girin.

WordPress bağlantısını kaydedin ve test edin

Mağazanın HTTPS yönetim panelinde Alter Product → Settings → Storage yolunu açın. AWS S3 ve + / Add connection seçeneğini seçin.

Bağlantı bilgilerini girin

New connection seçeneğini seçin. Aynı yerleşik talimatlar AWS S3 setup guide altında da bulunur.

  1. Save connection seçeneğini seçin ve onayı bekleyin.
  2. Test connection seçeneğini seçin. Yeniden test etmeden önce değişiklikleri kaydedin.
  3. Sonucu iletişim kutusunda ve Last connection test sütununda kontrol edin. Kaydettikten sonra anahtar alanlarının boş görünmesi tasarlanmış bir davranıştır.
WordPress bağlantı alanları
AlanDeğer
Bucket nameBucket adının tamamı; ARN, s3:// URL’si veya HTTPS adresi olmamalı ve nokta içermemelidir.
Folder prefixIAM politikasıyla eşleşen alter-product. Harfler, rakamlar, kısa çizgiler, alt çizgiler ve ayrılmış klasörler kullanın; başta veya sonda eğik çizgi bulunmasın.
Bucket owner AWS account IDSahibin 12 haneli hesap kimliği, boşluksuz.
AWS regionBucket’ın gerçek bölgesi. Form varsayılan olarak eu-central-1 kullanır.
AWS access key ID / AWS secret access keyÖzel IAM kullanıcısının kaydedilmiş anahtar çifti.
Use temporary AWS credentialsBu IAM kullanıcısının uzun süreli anahtarı için işaretlemeyin. Yalnızca geçici kimlik bilgilerinde etkinleştirin ve AWS session token değerini girin.

Bağlantı testi başarısız olursa

Bucket adını, sahibini, bölgesini, gerekli ayarları ve hem WordPress hem IAM’deki önekin tam olarak eşleştiğini doğrulayın. CORS alanını boş tutun; herkese açık erişim korumasını devre dışı bırakmayın.

Kaydedilen bucket, önek, sahip ve bölge bağlantının kimliğini oluşturur. Farklı bir hedef için New connection seçeneğini seçin. Edit → Reconnect, kayıtlı dosya referanslarını koruyarak kimlik bilgilerini değiştirmek içindir.

Erişim anahtarlarını paylaşmadan test sonucunu desteğe iletin. Bu S3’ü varsayılan seçmeden önce bağlantı testinin başarılı olması gerekir.

Varsayılanı seçin ve mevcut dosyaları taşıyın

Varsayılan hedefi seçmek ile taşıma yapmak ayrı işlemlerdir.

Yeni gruplar için S3 kullanın

Kaydedilmiş bağlantının satırında Make default seçeneğini seçin. Eklenti bağlantıyı test eder ve varsayılanı ancak başarıdan sonra değiştirir. Bu işlem yeni dosya grupları için geçerlidir; mevcut gruplar ve sonraki revizyonları, taşınana kadar kayıtlı hedeflerini korur.

Desteklenen mevcut grupları taşıyın

İlk taşımadan önce veritabanını, WordPress salts değerlerini ve dosyaları birlikte yedekleyin. Bir test ortamıyla veya küçük bir grupla başlayın. Hedef S3 satırında Migrate bölümünü açın; paneli açmak tek başına dosya kopyalamaz.

Auto migration, seçilen hedefin dışında bulunan desteklenen grupları kapsar. Eklentiyle ilgisi olmayan WordPress dosyalarının taşınacağını garanti etmez.

  1. Start migration seçeneğini seçin. Eklenti S3’ü test eder, her grubu hazırlar, kopyalar, doğrular ve referanslarını değiştirir.
  2. Sayfayı açık tutun. Pause geçerli gruptan sonra durur; Resume migration kaydedilmiş ilerlemeden devam eder. Sayfayı kapatırsanız görevlerin gönderimini sürdürmek için yeniden açın.
  3. Bir grup başarısız olursa mesajı ve Advanced bölümünü inceleyin, nedeni düzeltin ve devam edin. Yükleme sonucu bilinmeyen bir işlemi körü körüne tekrarlamayın.
  4. Migration completed sonrasında normal kaynak okuma, düzenleme, önizlemeler ve sipariş dosyalarına erişimi test edin. Tarama sırasında oluşturulan yeni gruplar için başka bir tur gerekebilir.

Bir satırı kaldırmak depolanan dosyaları silmez

Gerekiyorsa önce varsayılanı değiştirin. Remove bağlantıyı listeden kaldırır; mevcut dosyalar ve kayıtlı kimlik bilgileri erişilebilir kalır. Bu bir AWS nesne temizleme komutu değildir.

Depolamayı WordPress düğümleri arasında paylaşın

Paylaşılan bir S3 hedefi, tek bir düğümün dosya diskine bağımlılığı azaltabilir. Yük dengeleyici yine de doğru biçimde paylaşılan bir WordPress kurulumuna ihtiyaç duyar.

Birden fazla düğüm için gereksinimler

Yük dengeleyicinin arkasındaki tek bir WordPress kurulumu için aşağıdakilerin tümünü birlikte sağlayın:

  • Tek ve tutarlı bir SQL yazma noktası ile eklenti veritabanının paylaşılan durumu.
  • Hâlâ yerelde saklanan dosyalar ve korunan taşıma kaynakları için paylaşılan bir uploads dizini.
  • Kaydedilmiş kimlik bilgilerinin ve şifreli dosyaların okunabilir kalması için her düğümde aynı orijinal WordPress salts değerleri.
  • Aktarım işlemleri için her düğümde özel bir geçici dizin.
  • Tutarlı eklenti yapılandırması ve aynı özel S3 bucket’ına ve nesne sürümlerine erişim.
  • Yerel mysqli ve InnoDB tablolarıyla standart wpdb kullanın. HyperDB gibi veritabanı yönlendirme drop-in’leri desteklenmez; buradaki yük dengeleme HTTP katmanındadır.

Kurtarmayı ve anahtar yenilemeyi çalışır tutun

Veritabanını, salts değerlerini ve referans verilen dosya sürümlerini birlikte koruyun.

Yedekleyin, yeniden bağlayın ve doğrulayın

Aynı kaydedilmiş bağlantının kimlik bilgilerini değiştirmek için Edit → Reconnect kullanın. Eski anahtarı devreden çıkarmadan önce mevcut ve geçmiş dosyaların okunmasını, onu hâlâ kullanabilecek diğer kayıtlı bağlantılar dahil test edin.

S3 sürümlemeyi etkin tutun ve eklentinin referans verdiği sürümleri koruyun. Gerekli geçmiş sürümleri silen yaşam döngüsü temizliği uygulamayın. Veritabanını, salts değerlerini ve depolanan dosyaları birlikte geri yüklemeyi test edin.

Geçici kimlik bilgilerinin süresi dolar ve yeni, geçerli bir belirteç ile anahtarlar gerekir; eklenti bunları otomatik yenilemez. Mağaza büyüdükçe AWS kullanımını ve barındırma aktarımını izleyin.