Integrasjon

Din egen lagring · WordPress + WooCommerce

WooCommerce AWS S3

Alter Product-utvidelsen inneholder en ferdig AWS S3-lagringsmodul. Lagre støttede filgrupper fra utvidelsen i din egen private bøtte, koble den til i WordPress, og migrer eksisterende filer med verktøyene i utvidelsen.

Alter Product tar ikke et ekstra kapasitetsgebyr for å utvide denne tilkoblede lagringen. AWS fakturerer kontoen din for lagring, forespørsler og overføring. WordPress-hostingen din og de vanlige reglene for abonnement og innbyggingsøkter gjelder fortsatt.

Instruksjonene følger oppsettsveiledningen i utvidelsen. Betegnelsene i AWS-konsollen beholdes på engelsk.

Installer WordPress- og WooCommerce-utvidelsen førstKoble Alter Product til butikken før du konfigurerer denne valgfrie lagringsbackenden.

Lagring, levering og kostnader

S3 lagrer filobjektene til utvidelsen. WordPress er fortsatt ansvarlig for autorisert levering til nettleseren.

En privat backend for utvidelsen

Nettleseren laster ikke ned direkte fra S3. WordPress henter og kontrollerer filer fra den private bøtten og leverer dem deretter gjennom sine egne endepunkter. La S3 CORS være tom, og behold Block Public Access aktivert; dette er verken en offentlig bøtte eller en direkte CDN-tilkobling.

Modulen omfatter støttede Alter Product-filgrupper. Tilkobling av en bøtte flytter ikke alle filer i WordPress og endrer ikke grensene for innebygde verktøy.

Nettleseren ber om filer gjennom WordPress; WordPress kobler til en privat AWS S3-bøtte.
Filer leveres gjennom WordPress. Den private S3-bøtten er ikke direkte tilgjengelig for nettleseren.

Betal AWS for ressursene du bruker

Alter Product tar ikke ekstra betalt for å øke lagringskapasiteten i den tilkoblede bøtten din. AWS-kostnader avhenger av bruk, region og lagringsklasse; sjekk den gjeldende S3-prislisten i stedet for å anta en fast pris.

Fordi WordPress leverer filene, kan trafikken også telle med i båndbreddeforbruket hos hostingleverandøren din. S3 er ikke et løfte om null hostingoverføring eller ubegrenset serverkapasitet.

Opprett en bøtte med de støttede innstillingene

Feltnavnene nedenfor samsvarer med den engelske AWS-konsollen og oppsettsveiledningen i utvidelsen.

Opprett en bøtte for generell bruk

Logg inn på AWS, åpne Amazon S3, og velg General purpose buckets → Create bucket. Velg en region og et navn med små bokstaver, tall og bindestreker, uten punktum. Kopier hele bøttenavnet, inkludert eventuelle suffikser lagt til av AWS.

  1. Bruk innstillingene i tabellen, og velg Create bucket.
  2. Ta vare på det fullstendige bøttenavnet, regionen og bøtteeierens 12-sifrede AWS-konto-ID.
  3. La Cross-origin resource sharing (CORS) være tom. Forespørsler til S3 kommer fra WordPress-serveren.
Innstillinger fra utvidelsens S3-oppsettsveiledning
AWS-feltInnstilling
Bucket typeGeneral purpose
Bucket namespaceAccount Regional namespace (anbefalt)
Object OwnershipACLs disabled / Bucket owner enforced
Block Public AccessBlock all public access (alle fire innstillinger)
Bucket VersioningEnable
Default encryptionServer-side encryption with Amazon S3 managed keys (SSE-S3 / AES256)
Bucket KeyDisable
Advanced settings → Object LockDisable

Krev HTTPS

Legg til en transportregel uten å gjøre bøtten offentlig eller gi tilgang til objekter.

Legg til bøttepolicyen

Åpne Permissions → Bucket policy → Edit. Erstatt begge EXAMPLE-BUCKET-verdiene med det fullstendige bøttenavnet ditt. Hvis det allerede finnes en policy, behold bestemmelsene i den og legg til denne regelen etter at du har gjennomgått hele dokumentet.

  1. Kontroller meldingene i redigeringsverktøyet, og velg Save changes.
  2. Bekreft at regelen er lagret. Behold Block all public access aktivert.
Bøttepolicy i JSON
{
  "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"
        }
      }
    }
  ]
}

Opprett begrenset IAM-tilgang

Bruk en egen policy for denne bøtten og dette prefikset i stedet for AdministratorAccess eller AmazonS3FullAccess.

Opprett policyen for utvidelsen

Lim inn følgende dokument under IAM → Policies → Create policy → JSON. Erstatt alle EXAMPLE-BUCKET med det fullstendige bøttenavnet. Prefikset alter-product må samsvare med Folder prefix i WordPress; endre det i hver Resource for objekter hvis du velger et annet prefiks.

  1. Valider policyen, velg Next, og gi den et navn, for eksempel AlterProductS3Storage.
  2. Velg Create policy, og ta vare på navnet til brukeroppsettet.
IAM-policy i JSON
{
  "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/*"
    }
  ]
}

Opprett en egen bruker og tilgangsnøkkel

Velg IAM → Users → Create user. La Provide user access to the AWS Management Console være umerket.

  1. Velg Next → Attach policies directly, og tilknytt bare policyen ovenfor. Fullfør Create user.
  2. Åpne brukerens Security credentials → Access keys → Create access key. For dette manuelle utvidelsesoppsettet velger du Other → Next og deretter Create access key.
  3. Lagre Access key ID og Secret access key i en passordbehandler. Den hemmelige nøkkelen vises bare én gang. Skriv dem direkte inn i WordPress over HTTPS, ikke i meldinger eller skjermbilder.

Lagre og test WordPress-tilkoblingen

Åpne Alter Product → Settings → Storage i butikkens administrasjonspanel over HTTPS. Velg AWS S3 og + / Add connection.

Oppgi tilkoblingsdetaljene

Velg New connection. De samme innebygde instruksjonene er tilgjengelige under AWS S3 setup guide.

  1. Velg Save connection, og vent på bekreftelsen.
  2. Velg Test connection. Lagre eventuelle endringer før du tester på nytt.
  3. Kontroller resultatet i dialogen og kolonnen Last connection test. Tomme nøkkelfelt etter lagring er tilsiktet.
Tilkoblingsfelt i WordPress
FeltVerdi
Bucket nameDet fullstendige bøttenavnet, ikke en ARN, s3://-URL eller HTTPS-adresse; uten punktum.
Folder prefixalter-product, i samsvar med IAM-policyen. Bruk bokstaver, tall, bindestreker, understreker og adskilte mapper; ingen skråstrek i begynnelsen eller slutten.
Bucket owner AWS account IDEierens 12-sifrede konto-ID uten mellomrom.
AWS regionDen faktiske regionen til bøtten. Skjemaets standardverdi er eu-central-1.
AWS access key ID / AWS secret access keyDet lagrede nøkkelparet til den egne IAM-brukeren.
Use temporary AWS credentialsLa dette være umerket for denne IAM-brukerens langsiktige nøkkel. Aktiver det bare for midlertidig legitimasjon, og oppgi AWS session token.

Hvis tilkoblingstesten mislykkes

Kontroller bøttenavnet, eieren, regionen, de påkrevde bøtteinnstillingene og det nøyaktige prefikset i både WordPress og IAM. La CORS være tom; ikke deaktiver beskyttelsen mot offentlig tilgang.

Lagret bøtte, prefiks, eier og region identifiserer tilkoblingen. Velg New connection for et annet mål. Edit → Reconnect brukes til å erstatte legitimasjon og samtidig beholde de samme lagrede filreferansene.

Gi brukerstøtte testresultatet uten tilgangsnøkler. En vellykket tilkoblingstest er påkrevd før du kan velge denne S3 som standard.

Velg standard og migrer eksisterende filer

Valg av standardmål og migrering er separate handlinger.

Bruk S3 for nye grupper

Velg Make default på raden til den lagrede tilkoblingen. Utvidelsen tester tilkoblingen og endrer standarden bare hvis testen lykkes. Dette gjelder nye filgrupper; eksisterende grupper og senere revisjoner beholder sitt registrerte mål til de migreres.

Flytt støttede eksisterende grupper

Ta en samlet sikkerhetskopi av databasen, WordPress-saltene og filene før den første migreringen. Start med et testmiljø eller en liten gruppe. Åpne Migrate på raden til S3-målet; bare det å åpne panelet kopierer ingen filer.

Automatisk migrering omfatter støttede grupper utenfor det valgte målet. Den lover ikke å migrere andre WordPress-filer.

  1. Velg Start migration. Utvidelsen tester S3, klargjør hver gruppe, kopierer og verifiserer den og bytter referansene.
  2. Hold siden åpen. Pause stopper etter den gjeldende gruppen; Resume migration fortsetter fra lagret fremdrift. Hvis du lukker siden, åpner du den igjen for å fortsette å sende ut arbeid.
  3. Hvis en gruppe mislykkes, les meldingen og Advanced, rett årsaken, og fortsett. Ikke gjenta en operasjon blindt hvis resultatet av opplastingen er ukjent.
  4. Etter Migration completed må du teste vanlig lesing og redigering av filer, forhåndsvisninger og tilgang til ordrefiler. Nye grupper opprettet under skanningen kan kreve en ekstra runde.

Å fjerne en rad sletter ikke lagrede filer

Bytt standard først om nødvendig. Remove fjerner tilkoblingen fra listen, mens eksisterende filer og deres lagrede legitimasjon fortsatt er tilgjengelige. Dette er ikke en kommando for å rydde opp i AWS-objekter.

Del lagring mellom WordPress-noder

Et delt S3-mål kan redusere avhengigheten av fildisken på én node. En lastbalanserer trenger fortsatt en korrekt delt WordPress-installasjon.

Krav til flere noder

For én WordPress-installasjon bak en lastbalanserer må du sørge for alt dette samtidig:

  • Én konsistent SQL-skriveinstans og delt databasetilstand for utvidelsen.
  • En delt uploads-mappe for filer som fortsatt lagres lokalt, og beholdte migreringskilder.
  • De samme opprinnelige WordPress-saltene på alle noder, slik at lagret legitimasjon og krypterte filer fortsatt kan leses.
  • En privat midlertidig mappe på hver node for overføringsarbeid.
  • Lik utvidelseskonfigurasjon og tilgang til samme private S3-bøtte og objektversjoner.
  • Bruk standard wpdb med native mysqli og InnoDB-tabeller. Drop-ins for databaseruting, som HyperDB, støttes ikke; lastbalanseringen skjer her på HTTP-nivå.

Oppretthold gjenoppretting og nøkkelrotasjon

Behold databasen, saltene og de refererte filversjonene samlet.

Sikkerhetskopier, koble til på nytt og kontroller

Bruk Edit → Reconnect for å erstatte legitimasjon for samme lagrede tilkobling. Test lesing av nåværende og historiske filer før du tar den gamle nøkkelen ut av bruk, også for andre lagrede tilkoblinger som fortsatt kan bruke den.

Behold S3-versjonering aktivert, og ta vare på versjonene utvidelsen refererer til. Ikke bruk livssyklusopprydding som sletter nødvendige historiske versjoner. Test gjenoppretting av databasen, saltene og de lagrede filene samlet.

Midlertidig legitimasjon utløper og krever et nytt gyldig token og nye gyldige nøkler; utvidelsen fornyer dem ikke automatisk. Følg med på AWS-bruk og hostingoverføring etter hvert som butikken vokser.