Integration

Dit eget lager · WordPress + WooCommerce

WooCommerce AWS S3

Alter Product-pluginet indeholder et færdigt AWS S3-lagermodul. Gem understøttede filgrupper fra pluginet i din egen private bucket, tilslut den i WordPress, og migrer eksisterende filer med pluginets værktøjer.

Alter Product opkræver ikke et ekstra gebyr for at udvide kapaciteten i dette tilsluttede lager. AWS fakturerer din konto for lager, forespørgsler og overførsel. Dit WordPress-hosting og de sædvanlige regler for abonnement og indlejringssessioner gælder stadig.

Instruktionerne følger opsætningsvejledningen i pluginet. Betegnelserne i AWS-konsollen forbliver på engelsk.

Installer først WordPress- og WooCommerce-pluginetForbind Alter Product med butikken, før du konfigurerer denne valgfrie lagerbackend.

Lagring, levering og omkostninger

S3 gemmer pluginets filobjekter. WordPress har fortsat ansvaret for autoriseret levering til browseren.

En privat backend til pluginet

Browseren downloader ikke direkte fra S3. WordPress henter og kontrollerer filer fra den private bucket og leverer dem derefter via sine egne endpoints. Lad S3 CORS være tom, og behold Block Public Access aktiveret; dette er hverken en offentlig bucket eller en direkte CDN-forbindelse.

Modulet dækker understøttede Alter Product-filgrupper. Tilslutning af en bucket flytter ikke alle filer i WordPress og ændrer ikke grænserne for indlejrede værktøjer.

Browseren anmoder om filer via WordPress; WordPress forbinder til en privat AWS S3-bucket.
Filer leveres gennem WordPress. Den private S3-bucket er ikke direkte tilgængelig for browseren.

Betal AWS for de ressourcer, du bruger

Alter Product opkræver ikke ekstra for at øge lagerkapaciteten i din tilsluttede bucket. AWS-priser afhænger af forbrug, region og lagerklasse; se den aktuelle S3-prisliste i stedet for at antage en fast pris.

Fordi WordPress leverer filerne, kan trafikken også tælle med i dit hostings båndbreddeforbrug. S3 er ikke et løfte om intet hostingforbrug til overførsel eller ubegrænset serverkapacitet.

Opret en bucket med de understøttede indstillinger

Feltnavnene nedenfor svarer til den engelske AWS-konsol og opsætningsvejledningen i pluginet.

Opret en bucket til generel brug

Log ind på AWS, åbn Amazon S3, og vælg General purpose buckets → Create bucket. Vælg en region og et navn med små bogstaver, tal og bindestreger uden punktummer. Kopiér hele bucketnavnet, inklusive eventuelle suffikser tilføjet af AWS.

  1. Anvend indstillingerne i tabellen, og vælg Create bucket.
  2. Gem det fulde bucketnavn, regionen og bucketejerens 12-cifrede AWS-konto-id.
  3. Lad Cross-origin resource sharing (CORS) være tom. Forespørgsler til S3 kommer fra WordPress-serveren.
Indstillinger fra pluginets S3-opsætningsvejledning
AWS-feltIndstilling
Bucket typeGeneral purpose
Bucket namespaceAccount Regional namespace (anbefalet)
Object OwnershipACLs disabled / Bucket owner enforced
Block Public AccessBlock all public access (alle fire indstillinger)
Bucket VersioningEnable
Default encryptionServer-side encryption with Amazon S3 managed keys (SSE-S3 / AES256)
Bucket KeyDisable
Advanced settings → Object LockDisable

Kræv HTTPS

Tilføj en transportregel uden at gøre bucketen offentlig eller give adgang til objekter.

Tilføj bucketpolitikken

Åbn Permissions → Bucket policy → Edit. Erstat begge EXAMPLE-BUCKET-værdier med dit fulde bucketnavn. Hvis der allerede findes en politik, skal du beholde dens erklæringer og tilføje denne regel, efter at du har gennemgået hele dokumentet.

  1. Kontrollér meddelelserne i editoren, og vælg Save changes.
  2. Bekræft, at reglen er gemt. Behold Block all public access aktiveret.
Bucketpolitik 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"
        }
      }
    }
  ]
}

Opret begrænset IAM-adgang

Brug en særskilt politik til denne bucket og dette præfiks i stedet for AdministratorAccess eller AmazonS3FullAccess.

Opret pluginets politik

Indsæt følgende dokument under IAM → Policies → Create policy → JSON. Erstat alle EXAMPLE-BUCKET med det fulde bucketnavn. Præfikset alter-product skal svare til Folder prefix i WordPress; ændr det i hver Resource for objekter, hvis du vælger et andet præfiks.

  1. Valider politikken, vælg Next, og giv den et navn, for eksempel AlterProductS3Storage.
  2. Vælg Create policy, og gem navnet til brugeropsætningen.
IAM-politik 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/*"
    }
  ]
}

Opret en særskilt bruger og adgangsnøgle

Vælg IAM → Users → Create user. Lad Provide user access to the AWS Management Console være umarkeret.

  1. Vælg Next → Attach policies directly, og tilknyt kun politikken ovenfor. Gennemfør Create user.
  2. Åbn brugerens Security credentials → Access keys → Create access key. Til denne manuelle pluginopsætning skal du vælge Other → Next og derefter Create access key.
  3. Gem Access key ID og Secret access key i en adgangskodeadministrator. Den hemmelige nøgle vises kun én gang. Indtast dem direkte i WordPress via HTTPS, ikke i beskeder eller skærmbilleder.

Gem og test WordPress-forbindelsen

Åbn Alter Product → Settings → Storage i butikkens administrationspanel via HTTPS. Vælg AWS S3 og + / Add connection.

Indtast forbindelsesoplysningerne

Vælg New connection. De samme indbyggede instruktioner findes under AWS S3 setup guide.

  1. Vælg Save connection, og vent på bekræftelsen.
  2. Vælg Test connection. Gem ændringer, før du tester igen.
  3. Kontrollér resultatet i dialogen og kolonnen Last connection test. Tomme nøglefelter efter lagring er tilsigtet.
Forbindelsesfelter i WordPress
FeltVærdi
Bucket nameDet fulde bucketnavn, ikke en ARN, s3://-URL eller HTTPS-adresse; uden punktummer.
Folder prefixalter-product, som i IAM-politikken. Brug bogstaver, tal, bindestreger, understregninger og adskilte mapper; ingen skråstreg i begyndelsen eller slutningen.
Bucket owner AWS account IDEjerens 12-cifrede konto-id uden mellemrum.
AWS regionBucketens faktiske region. Formularen bruger som standard eu-central-1.
AWS access key ID / AWS secret access keyDet gemte nøglepar for den særskilte IAM-bruger.
Use temporary AWS credentialsLad feltet være umarkeret for denne IAM-brugers langvarige nøgle. Aktivér det kun til midlertidige legitimationsoplysninger, og angiv AWS session token.

Hvis forbindelsestesten mislykkes

Kontrollér bucketnavn, ejer, region, påkrævede bucketindstillinger og det præcise præfiks i både WordPress og IAM. Lad CORS være tom; slå ikke beskyttelsen mod offentlig adgang fra.

Gemt bucket, præfiks, ejer og region identificerer forbindelsen. Vælg New connection til en anden destination. Edit → Reconnect bruges til at udskifte legitimationsoplysninger og samtidig beholde de samme gemte filreferencer.

Send testresultatet til support uden adgangsnøgler. En vellykket forbindelsestest er påkrævet, før du kan vælge denne S3 som standard.

Vælg standard, og migrer eksisterende filer

Valg af standarddestination og migrering er separate handlinger.

Brug S3 til nye grupper

Vælg Make default på den gemte forbindelses række. Pluginet tester forbindelsen og ændrer kun standarden, hvis testen lykkes. Dette gælder for nye filgrupper; eksisterende grupper og senere revisioner beholder deres registrerede destination, indtil de migreres.

Flyt understøttede eksisterende grupper

Tag en samlet sikkerhedskopi af databasen, WordPress-salts og filer før den første migrering. Start med et testmiljø eller en lille gruppe. Åbn Migrate på rækken for den ønskede S3-destination; det kopierer ikke filer blot at åbne panelet.

Automatisk migrering omfatter understøttede grupper uden for den valgte destination. Det er ikke et løfte om at migrere andre WordPress-filer.

  1. Vælg Start migration. Pluginet tester S3, klargør hver gruppe, kopierer og kontrollerer den og ændrer dens referencer.
  2. Hold siden åben. Pause stopper efter den aktuelle gruppe; Resume migration fortsætter fra det gemte fremskridt. Hvis du lukker siden, skal du åbne den igen for at genoptage afsendelsen af opgaver.
  3. Hvis en gruppe fejler, skal du gennemgå meddelelsen og Advanced, rette årsagen og fortsætte. Gentag ikke blindt en handling, hvis uploadresultat er ukendt.
  4. Efter Migration completed skal du teste normal læsning og redigering af filer, forhåndsvisninger og adgang til ordrefiler. Nye grupper oprettet under scanningen kan kræve en ekstra gennemgang.

Fjernelse af en række sletter ikke gemte filer

Skift først standarden, hvis det er nødvendigt. Remove fjerner forbindelsen fra listen, mens eksisterende filer og deres gemte legitimationsoplysninger forbliver tilgængelige. Det er ikke en kommando til at rydde AWS-objekter op.

Del lager mellem WordPress-noder

En delt S3-destination kan mindske afhængigheden af én nodes fildisk. En load balancer kræver stadig en korrekt delt WordPress-installation.

Krav til flere noder

En WordPress-installation bag en load balancer kræver alle følgende forhold samtidig:

  • Én konsistent SQL-skriveinstans og delt databasetilstand for pluginet.
  • En delt uploads-mappe til filer, der stadig gemmes lokalt, og bevarede migreringskilder.
  • De samme oprindelige WordPress-salts på alle noder, så gemte legitimationsoplysninger og krypterede filer fortsat kan læses.
  • En privat midlertidig mappe på hver node til overførselsopgaver.
  • Ensartet pluginkonfiguration og adgang til samme private S3-bucket og objektversioner.
  • Brug standard-wpdb med native mysqli og InnoDB-tabeller. Drop-ins til databaserouting såsom HyperDB understøttes ikke; belastningsfordelingen sker her på HTTP-niveau.

Bevar mulighed for gendannelse og nøglerotation

Bevar databasen, salts og de refererede filversioner sammen.

Tag sikkerhedskopier, genopret forbindelsen, og kontrollér

Brug Edit → Reconnect til at udskifte legitimationsoplysninger for den samme gemte forbindelse. Test læsning af aktuelle og historiske filer, før du udfaser den gamle nøgle, inklusive andre gemte forbindelser, der måske stadig bruger den.

Behold S3-versionsstyring aktiveret, og bevar de versioner, pluginet refererer til. Anvend ikke livscyklusoprydning, som sletter nødvendige historiske versioner. Test samlet gendannelse af databasen, salts og de gemte filer.

Midlertidige legitimationsoplysninger udløber og kræver et nyt gyldigt token og nye gyldige nøgler; pluginet fornyer dem ikke automatisk. Hold øje med AWS-forbrug og hostingoverførsel, efterhånden som butikken vokser.