Funkcja Amazon S3 dla Easy Digital Downloads (EDD) pozwala hostować pliki do pobrania na Twoim koncie Amazon S3. Jest to bezpieczniejsze i bardziej niezawodne niż przechowywanie plików bezpośrednio na własnym koncie hostingowym.
Ten przewodnik przeprowadzi Cię przez proces tworzenia użytkownika IAM w AWS, łączenia Twojego konta Amazon S3 z EDD i korzystania z Amazon S3 po skonfigurowaniu wszystkiego.
Uwaga: Amazon S3 to funkcja Pro, która wymaga co najmniej przepustki Extended.
Włączanie Amazon S3
Aby zainstalować funkcję Amazon S3 w swoim sklepie EDD, przejdź do Pobrane » Rozszerzenia, wyszukaj Amazon S3 i kliknij Zainstaluj.

Zobacz Jak zainstalować rozszerzenie? więcej informacji na temat instalacji i aktywacji funkcji.
Gdy funkcja będzie aktywna, ustawienia Amazon S3 znajdziesz w Pobrane » Ustawienia » Rozszerzenia » Amazon S3. Po wykonaniu poniższych kroków wprowadzisz tam swoje dane uwierzytelniające AWS.
Tworzenie konta IAM
Aby połączyć Easy Digital Downloads z Twoim kontem Amazon S3, musisz utworzyć użytkownika IAM w AWS i przypisać mu politykę uprawnień.
Gdy to zrobisz, wygenerujesz klucz dostępu i klucz tajny dla tego użytkownika, a następnie wprowadzisz oba w Pobrane » Ustawienia » Rozszerzenia » Amazon S3 na swojej stronie WordPress.
Logowanie do konta Amazon S3
Jeśli nie masz jeszcze konta AWS, utwórz je na stronie Amazon S3 przed kontynuowaniem.
Zaloguj się na swoje konto Amazon S3 i przejdź do strony Użytkownicy. Możesz znaleźć tę stronę, klikając nazwę swojego konta w prawym górnym rogu, a następnie Poświadczenia bezpieczeństwa » Użytkownicy w sekcji Zarządzanie dostępem po lewej stronie strony.
Konfiguracja użytkownika IAM
Jeśli masz już użytkownika IAM, którego chcesz użyć, wybierz tego użytkownika.
Dodaj użytkownika
Jeśli potrzebujesz nowego, kliknij przycisk Utwórz użytkownika i postępuj zgodnie z instrukcjami. Będziesz musiał uzyskać poświadczenia bezpieczeństwa i przypisać politykę uprawnień do użytkownika.

Ustaw szczegóły użytkownika
Wprowadź nazwę użytkownika według własnego wyboru i kliknij Dalej.

Ustaw uprawnienia
Na następnym ekranie ustawisz uprawnienia użytkownika.
- Wybierz Dołącz polityki bezpośrednio.
- W polu Filtruj wprowadź „S3full”, aby zawęzić wyniki do polityk Amazon S3.
- Zaznacz pole wyboru AmazonS3FullAccess.
- Pomiń sekcję „Ustaw granicę uprawnień – opcjonalnie”.
- Kliknij Dalej.

Chcesz bardziej restrykcyjnych uprawnień zamiast pełnego dostępu do konta? AmazonS3FullAccess zapewnia dostęp do każdego zasobnika i każdej operacji S3 na Twoim koncie AWS. Zobacz Ograniczanie dostępu do określonych zasobników poniżej, aby uzyskać politykę ograniczoną tylko do zasobnika używanego przez EDD.
Przegląd i tworzenie
Potwierdź, że Twoje uprawnienia odpowiadają powyższym krokom, a następnie kliknij Utwórz użytkownika.

Uzyskiwanie kluczy dostępu
Będziesz potrzebować użytkownika IAM skonfigurowanego z uprawnieniami z powyższych kroków. Jeśli już masz użytkownika IAM z uprawnieniami AmazonS3FullAccess, możesz go użyć.
Przejdź do nazwy użytkownika IAM, którą utworzyłeś, wyświetlanej na stronie Użytkownicy AWS. Wybierz kartę Poświadczenia zabezpieczeń, a następnie Utwórz klucz dostępu.

Wybierz Usługa strony trzeciej i zaznacz Potwierdź.

Na następnym ekranie wybierz Utwórz klucz dostępu. Nie musisz dodawać znacznika opisu.

Zapisz swój Klucz dostępu i Klucz tajny dostępu.

Uwaga: Nie będziesz mógł ponownie uzyskać dostępu do klucza tajnego dla tego użytkownika, więc upewnij się, że zapisałeś go w bezpiecznym miejscu. Jeśli zgubisz poświadczenia, będziesz musiał utworzyć nowy klucz dostępu.
Twój użytkownik IAM powinien teraz mieć pełne uprawnienia do dostępu i przesyłania plików do zasobnika S3. Zapewnia to Twojemu sklepowi EDD dostęp do Twoich plików i możliwość tworzenia bezpiecznych linków do pobierania dla klientów.
Twój użytkownik IAM ma teraz uprawnienia do dostępu i przesyłania plików do zasobnika S3, co zapewnia Twojemu sklepowi EDD dostęp do Twoich plików i możliwość tworzenia bezpiecznych linków do pobierania dla klientów.
Dodaj swój Klucz dostępu i Klucz tajny dostępu do ustawień Amazon S3 Twojego sklepu EDD w sekcji Pobrane » Ustawienia » Rozszerzenia » Amazon S3.

Jeśli potrzebujesz więcej pomocy w tworzeniu użytkowników IAM lub dołączaniu zasad, zobacz przewodnik Amazon dotyczący tworzenia użytkowników IAM.
Ogranicz dostęp do określonych zasobników
Jeśli Twoje konto S3 jest używane do innych celów i chcesz ograniczyć swojego użytkownika IAM (tego, którego używa Twój sklep EDD) do określonych zasobników, utwórz niestandardową zasadę zamiast używać AmazonS3FullAccess.
Wybierz Dołącz zasady bezpośrednio, a następnie Utwórz zasadę.

Dodaj poniżej szczegóły zasady za pomocą edytora JSON. Zastąp bucket-name-here nazwą zasobnika (lub zasobników), do których chcesz, aby Twój sklep EDD miał dostęp.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObjectAcl",
"s3:GetObject",
"s3:ListBucketMultipartUploads",
"s3:AbortMultipartUpload",
"s3:ListBucket",
"s3:ListMultipartUploadParts"
],
"Resource": [
"arn:aws:s3:::bucket-name-here",
"arn:aws:s3:::bucket-name-here/*"
]
},
{
"Sid": "VisualEditor1",
"Effect": "Allow",
"Action": "s3:ListAllMyBuckets",
"Resource": "*"
}
]
}
Dzięki tej zasadzie wszystkie nazwy Twoich zasobników są nadal widoczne, ale tylko zasobniki wymienione w sekcji Zasób są dostępne. Jeśli EDD spróbuje uzyskać dostęp do zasobnika, który nie znajduje się na liście Zasób, zobaczysz błąd PHP.
Konfiguracja Amazon S3
Jeśli jeszcze tego nie zrobiłeś, przejdź do Pobrane » Ustawienia » Rozszerzenia » Amazon S3, aby wprowadzić swoje klucze dostępu i tajne klucze Amazon S3.

Wprowadź domyślny bucket
Na tym ekranie wprowadzisz również inne informacje o koncie, takie jak Twój Domyślny zasobnik Amazon S3.

To jest domyślny zasobnik, do którego chcesz przesyłać pliki. Aby utworzyć nowe zasobniki lub zobaczyć listę swoich bieżących zasobników, przejdź do swojego Konsoli S3 (będziesz musiał się zalogować, aby uzyskać do niej dostęp).
Utwórz zasobnik, którego chcesz używać jako domyślnego. Nadal możesz wybrać inny zasobnik na plik podczas przesyłania.
Ustaw uprawnienia bucketu
Włącz Blokuj cały dostęp publiczny dla swojego zasobnika, aby ograniczyć nieautoryzowany dostęp do plików. EDD zapewnia klientom tymczasowy dostęp do plików, więc sam zasobnik nie musi być publiczny.

Wprowadź punkt końcowy Amazon S3 (opcjonalnie)
Punkt końcowy Amazon S3 to punkt końcowy używany przez Twój zasobnik.
Zazwyczaj możesz zostawić to pole puste. Jeśli Twoja witryna ma problemy z dostępem do Twojego zasobnika, spróbuj zmienić go na punkt końcowy dla regionu Twojego zasobnika.
Znajdź region swojego zasobnika, logując się na swoje konto Amazon S3, klikając S3 i sprawdzając kolumnę regionu obok każdego zasobnika. Następnie znajdź pasujący punkt końcowy w Dokumentacji regionów S3 firmy Amazon.

Skopiuj i wklej ten punkt końcowy w pole, a następnie zapisz.
Pole Punkt końcowy Amazon S3 działa również z Cloudflare R2 i innymi dostawcami przechowywania danych zgodnymi z S3, nie tylko z AWS. Jeśli używasz R2 lub podobnej usługi, wprowadź tutaj jej punkt końcowy w ten sam sposób.
Czas ważności linku (opcjonalnie)
Ostatnie pole ustawień w rozszerzeniu EDD Amazon S3 to Czas ważności linku. Jest to liczba minut, przez które dynamicznie generowany adres URL pobierania pozostaje ważny.
Gdy klient kliknie link do pobrania, EDD generuje nowy, tymczasowy adres URL pliku w Amazon S3. To ustawienie kontroluje, jak długo ten adres URL działa, zanim wygaśnie.
Jeśli pozostawisz to pole puste, link domyślnie pozostaje ważny przez 5 minut.
Nazwa folderu FES (opcjonalnie)
Jeśli używasz Frontend Submissions w połączeniu z Amazon S3, to ustawienie kontroluje sposób organizacji plików dostawców w Twoim zasobniku S3. Wybierz, czy pliki mają być przechowywane w folderach nazwanych według nazwy użytkownika każdego dostawcy, czy jego identyfikatora użytkownika.
Zobacz Amazon S3 i Frontend Submissions więcej informacji o tym, jak te dwie funkcje współpracują ze sobą.
Używanie Amazon S3 z EDD
Przesyłasz pliki do produktu do pobrania w taki sam sposób jak wcześniej, ale ta funkcja daje Ci dwie nowe zakładki w narzędziu do przesyłania multimediów: Prześlij do Amazon S3 i Biblioteka Amazon S3.

Przesyłanie do Amazon S3 przez EDD
Kiedy przesyłasz plik z zakładki Prześlij do Amazon S3, Easy Digital Downloads automatycznie przesyła go na Twoje konto Amazon S3.
Każdy plik przesłany w ten sposób jest również dostępny z Twojej Biblioteki Mediów WordPress, tak jak każdy inny plik multimedialny.

Dodawanie plików już znajdujących się w AWS do EDD
Każdy plik już znajdujący się w S3 jest dostępny z Twojej Biblioteki Mediów WordPress poprzez zakładkę Biblioteka Amazon S3 w narzędziu do przesyłania multimediów.

Możesz również ręcznie dodać pliki do pola Adres URL pliku.

Pole akceptuje kilka różnych formatów:
- Format narzędzia do przesyłania multimediów:
nazwa-zasobnika/nazwa-pliku.zip - Adresy URL w stylu wirtualnego hostingu: na przykład,
https://nazwa-zasobnika.s3.amazonaws.com/nazwa-pliku.zip - Adresy URL w stylu ścieżki: na przykład,
https://s3.amazonaws.com/nazwa-zasobnika/nazwa-pliku.zip - Adresy URL punktów końcowych regionalnych: na przykład,
https://nazwa-zasobnika.s3.kod-regionu.amazonaws.com/nazwa-pliku.zip
Ważne ⚠️
- Nie kopiuj i nie wklejaj adresu URL bezpośrednio z biblioteki Amazon S3 do pola Adres URL pliku. Powoduje to błąd Odmowa dostępu, gdy klient próbuje pobrać plik. Zamiast tego użyj jednego z powyższych formatów.
- Wszystkie nazwy zasobników i folderów na Twoim koncie Amazon S3 muszą być małymi literami i wolne od znaków specjalnych. Zobacz dokumentację Amazon dotyczącą ograniczeń nazewnictwa zasobników.
- Nie wszystkie wersje S3 są dostępne w każdym regionie. Ta tabela pokazuje, które są dostępne w Twoim regionie.
- Pliki dostarczane przez Amazon S3 zawsze dostarczają jako Przekierowanie, nawet jeśli Twój sklep jest ustawiony na Wymuszone.
Używanie Amazon S3 z CFM
Jeśli używasz Checkout Fields Manager w połączeniu z Amazon S3, pliki przesyłane przez klientów za pośrednictwem formularzy CFM podczas realizacji zakupu są automatycznie wysyłane do Twojego zasobnika Amazon S3 i przechowywane w folderze cfm/. Nie musisz nic dodatkowo konfigurować.
Po skonfigurowaniu poświadczeń Amazon S3 w zakładce Rozszerzenia » Amazon S3, dzieje się to automatycznie dla każdego pola przesyłania plików w formularzu Checkout Fields Manager.
Wymuszanie pobierania plików
Czasami Twoja przeglądarka próbuje wyświetlić lub odtworzyć plik zamiast go pobrać, na przykład otwierając muzykę lub wideo bezpośrednio w przeglądarce. Zazwyczaj można to naprawić za pomocą ustawień serwera WWW, ale pliki przechowywane na Amazon S3 całkowicie ignorują ustawienia serwera WWW.
Zamiast tego musisz skonfigurować to bezpośrednio w S3.
Uwaga: To ustawienie dotyczy poszczególnych plików lub folderów, a nie całego zasobnika.
Otwieranie właściwości pliku
W zasobniku S3 znajdź plik, z którym chcesz pracować, zaznacz go i kliknij Akcje » Zmień metadane.
Kliknij Dodaj metadane, ustaw Typ na Zdefiniowany przez system, Klucz na Content-Disposition, a Wartość na attachment. Kliknij Zapisz zmiany.

Wymusza to pobranie pliku zamiast odtwarzania lub wyświetlania go w przeglądarce.
Rozwiązywanie problemów i FAQ
Pliki otwierają się w przeglądarce zamiast pobierać
Zobacz Wymuszanie pobierania plików powyżej.
Czy klienci widzą rzeczywisty adres URL Amazon S3 i mogą pobrać plik bezpośrednio?
Nie. Klienci widzą adres URL wskazujący na Twój własny sklep. EDD tłumaczy lokalizację w tle, dzięki czemu pobieranie działa bez ujawniania oryginalnego adresu URL źródłowego Amazon S3.
Błąd: Problem z certyfikatem SSL: nie można uzyskać lokalnego certyfikatu wystawcy
Oznacza to, że certyfikat SSL na serwerze Twojej witryny jest nieprawidłowy lub zainstalowany nieprawidłowo. Skontaktuj się z firmą hostingową i poproś o weryfikację prawidłowej instalacji certyfikatu.
Błąd: Odmowa dostępu
Oznacza to, że używany identyfikator klucza dostępu i klucz tajny nie mają uprawnień potrzebnych do dostępu do Twoich zasobników i zasobów S3.
Aby to naprawić, dołącz nową politykę uprawnień do użytkownika IAM. Zobacz Tworzenie konta IAM powyżej, aby uzyskać prawidłowe uprawnienia.
Możesz również zobaczyć ten błąd, jeśli skopiowałeś adres URL bezpośrednio z Amazon S3 i wkleiłeś go w pole Adres URL pliku swojego pobierania.
Błąd: RequestTimeTooSkewed
Dzieje się tak, gdy ustawienia strefy czasowej serwera WWW są błędnie skonfigurowane. Skontaktuj się z firmą hostingową i poproś o ponowną konfigurację ustawień strefy czasowej.
Błąd: SignatureDoesNotMatch
Jeśli widzisz ten błąd wraz z komunikatem „Obliczony przez nas podpis żądania nie pasuje do podanego podpisu”, nazwa Twojego zasobnika prawdopodobnie zawiera wielkie litery lub spacje. Zmień nazwę swojego zasobnika lub utwórz nowy, używając tylko małych liter i bez spacji.
Błąd: NoSuchKey Określony klucz nie istnieje
Dzieje się tak, gdy występuje problem ze sposobem nazwania pliku lub zasobnika. Usuń wszystkie znaki interpunkcyjne i specjalne z nazwy.
Na przykład zmień test-file-one.mp4.zip na testfileone.zip .
Inne błędy lub problemy z przesyłaniem plików do Amazon S3
Jeśli masz problemy z przesyłaniem plików do Amazon S3 lub dostępem do istniejących plików, wypróbuj te kroki:
- Sprawdź ustawienie punktu końcowego Amazon S3 w sekcji Pobrane » Ustawienia » Rozszerzenia » Amazon S3. Upewnij się, że jest poprawnie skonfigurowane, w tym prawidłowy region. Zobacz Punkt końcowy Amazon S3 powyżej.
- Upewnij się, że nazwa pliku mieści się w limicie 1024 znaków. Zobacz dokumentację Amazon dotyczącą prawidłowego formatowania nazw plików.
- Jeśli niedawno przeszedłeś na nowe konto Amazon S3 i nie możesz przesyłać plików do swojego zasobnika, jest to zazwyczaj tymczasowe i rozwiązuje się samo w ciągu kilku godzin. Zobacz dokumentację Amazon więcej informacji.
- Nadal utknąłeś? Skontaktuj się z pomocą techniczną z dokładnym komunikatem o błędzie lub zachowaniem, które widzisz.
Aktualizacje licencji oprogramowania nieudane z komunikatem „Pobieranie nie powiodło się. cURL error 8: Invalid Content-Length: value”
Zazwyczaj oznacza to, że funkcja Amazon S3 nie wymusza pobierania przekierowań. Spróbuj ustawić Metodę pobierania na Wymuszoną.
Klient widzi „Aktualizacja nie powiodła się: Pobieranie nie powiodło się. Wewnętrzny błąd serwera” podczas aktualizacji wtyczki
Sprawdź, czy plik źródłowy używany do automatycznych aktualizacji jest wybrany w ustawieniach licencjonowania pobierania.
Najprawdopodobniej zobaczysz ten krytyczny błąd PHP w dzienniku błędów PHP swojego sklepu:
PHP Fatal error: Uncaught InvalidArgumentException: Znaleziono 2 błędy podczas walidacji danych wejściowych dla operacji GetObject: [Key] brakujący jest wymagany parametr [Key] oczekiwano, że długość ciągu znaków będzie >= 1, ale znaleziono długość ciągu znaków 0 w /home/ph198/public_html/wp-content/plugins/edd-amazon-s3/vendor/aws/aws-sdk-php/src/Api/Validator.php:65
