Rozszerzenie Amazon S3 dla Easy Digital Downloads pozwala na hostowanie plików do pobrania na Twoim koncie Amazon S3. Jest to bezpieczniejsze i bardziej niezawodne niż przechowywanie plików na własnym koncie hostingowym.
W tym artykule
Tworzenie konta IAM
Klucze dostępu IAM
Konfiguracja
Używanie Amazon S3 z EDD
Wymuszanie pobierania plików
Częste problemy i pytania
Tworzenie konta IAM
Aby Easy Digital Downloads mógł połączyć się z Twoim kontem Amazon S3, musisz utworzyć użytkownika IAM i przypisać mu politykę uprawnień. Możesz kliknąć Pokaż dane uwierzytelniające użytkownika , aby wyświetlić klucz dostępu i klucz tajny. Są to wartości, które musisz wprowadzić na swojej stronie WordPress w sekcji Downloads → Ustawienia → Rozszerzenia → Amazon S3.
1. Zaloguj się na swoje konto Amazon S3
Zaloguj się na swoje konto Amazon S3 i przejdź do strony Użytkownicy. Tę stronę można znaleźć, klikając nazwę swojego konta w prawym górnym rogu i wybierając Dane uwierzytelniające > Użytkownicy (w sekcji Zarządzanie dostępem po lewej stronie strony).
2. Konfiguracja użytkownika IAM
A. Dodaj użytkownika
Jeśli masz istniejącego użytkownika IAM, którego chcesz użyć, kliknij na tego użytkownika. Jeśli musisz utworzyć nowego użytkownika, kliknij niebieski przycisk Utwórz użytkownika i postępuj zgodnie z instrukcjami. Musisz teraz uzyskać dane uwierzytelniające oraz przypisać politykę uprawnień do użytkownika.

B. Ustaw szczegóły użytkownika:
Nazwa użytkownika: Utwórz nazwę użytkownika według własnego uznania i kliknij Dalej.

C. Ustaw uprawnienia
- Zaznacz pole „Dołącz polityki bezpośrednio”.
- Następnie w polu Filtruj wpisz „S3full”. Spowoduje to zawężenie wyników do tych, które są istotne dla Amazon S3.
- Zaznacz pole AmazonS3FullAccess.
- Zignoruj sekcję „Ustaw granicę uprawnień – opcjonalnie”.
- Kliknij Dalej.

D. Przejrzyj i utwórz
Potwierdź, że Twoje uprawnienia są zgodne z powyższymi instrukcjami. W przeciwnym razie nie ma nic do skonfigurowania, kliknij Utwórz użytkownika.

3. Uzyskaj klucze dostępu
Będziesz potrzebować konta IAM z uprawnieniami z powyższych kroków. Jeśli utworzyłeś konto IAM w przeszłości z uprawnieniami AmazonS3FullAccess, możesz użyć istniejącego konta.
A. Kliknij nazwę użytkownika IAM utworzoną powyżej, widoczną na stronie Użytkownicy AWS.
B. Kliknij kartę Dane uwierzytelniające i kliknij Utwórz klucz dostępu.

C. Wybierz Usługa strony trzeciej i zaznacz Potwierdź.

D. Kliknij Utwórz klucz dostępu. Nie jest wymagany żaden tag opisu.
E. Zapisz Klucz dostępu i Klucz tajny dostępu.
Uwaga: Nie będziesz mógł uzyskać dostępu do klucza tajnego dla tego użytkownika ponownie, więc upewnij się, że zapisałeś plik. Jeśli zgubisz dane uwierzytelniające, będziesz musiał utworzyć nowy klucz dostępu.

Twój użytkownik IAM powinien mieć teraz 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 pobrania dla klientów.
F. Dodaj 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 przypisywaniu zasad, zapoznaj się z przewodnikiem Amazon dotyczącym tworzenia użytkowników IAM, aby uzyskać więcej informacji.
Ogranicz dostęp do określonych zasobników
Jeśli Twoje konto S3 jest używane do innych celów i chcesz ograniczyć swoje konto IAM (Sklep EDD) do określonych zasobników, możesz utworzyć niestandardową zasad zamiast AmazonS3FullAccess. Odbywa się to zamiast Kroku 3 sekcji Ustaw uprawnienia.
Kliknij „Dołącz istniejące zasady bezpośrednio”, a następnie wybierz „Utwórz zasadę”: 
Dodaj poniższe szczegóły zasady za pomocą edytora JSON. Zaktualizuj bucket-name-here o nazwy zasobników, do których chcesz mieć dostęp za pośrednictwem swojego sklepu EDD.
{
"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": "*"
}
]
}
Podczas korzystania z tej zasady wszystkie nazwy zasobników będą widoczne, ale tylko te, które umieścisz w sekcji Zasoby, będą dostępne. Jeśli zasobnik, który nie jest uwzględniony na liście Zasoby, zostanie uzyskany za pośrednictwem EDD, wystąpi błąd PHP. Mamy nadzieję, że poprawimy to w przyszłej wersji.
Konfiguracja
Po zainstalowaniu i aktywowaniu rozszerzenia możesz przejść do Pobrane → Ustawienia → Rozszerzenia → Amazon S3 i wprowadzić informacje o swoim koncie Amazon S3.

1. Wprowadź identyfikator klucza dostępu i klucz tajny
Identyfikator klucza dostępu i klucz tajny uzyskuje się poprzez utworzenie użytkownika IAM na Twoim koncie S3. Zobacz
nasz przewodnik powyżej, aby uzyskać informacje o tym, jak utworzyć użytkownika IAM z odpowiednimi uprawnieniami.
2. Wprowadź domyślny zasobnik
Jest to domyślny zasobnik, do którego chcesz przesyłać pliki. Aby tworzyć nowe zasobniki lub uzyskać listę bieżących zasobników, przejdź do konsoli S3 (musisz być zalogowany, aby uzyskać dostęp do konsoli). Wprowadź tutaj nazwę zasobnika, którego chcesz użyć jako domyślnego. Podczas przesyłania plików do Amazon S3 będziesz mieć możliwość wyboru zasobnika, do którego chcesz przesłać plik.
Uprawnienia zasobnika
Twój zasobnik powinien mieć włączone opcję Blokuj cały dostęp publiczny, aby ograniczyć nieautoryzowany dostęp do plików. EDD zapewni klientom tymczasowy dostęp do plików.

3. Wprowadź hosta Amazon S3 (Opcjonalnie)
Jest to host S3 używany przez Twój zasobnik. Przez większość czasu to pole można pozostawić puste. Jednak jeśli Twoja witryna ma problemy z dostępem do Twojego zasobnika, spróbuj zmienić to na Endpoint dla regionu Twojego zasobnika, dla Twojego domyślnego zasobnika.
Region swojego zasobnika możesz znaleźć, logując się na konto AmazonS3, klikając S3, a następnie patrząc na kolumnę regionu obok każdego zasobnika. Tam będzie podany region. Gdy już go znasz, znajdź odpowiedni host na stronie Dokumentacja Regionów Amazon S3. Skopiuj i wklej ten host, a następnie zapisz w swoim WordPress.

4. Czas wygaśnięcia linku (Opcjonalnie)
Jest to liczba minut, przez które dynamicznie generowany adres URL jest ważny. Kiedy klient klika w link do pobrania dostarczony przez Easy Digital Downloads, nowy adres URL pliku w Amazon S3 jest generowany na bieżąco. Jest to liczba minut, przez które nowy, tajny adres URL jest ważny.
To kończy konfigurację Amazon S3.
Używanie Amazon S3 z EDD
Pliki do produktu do pobrania będziesz przesyłać dokładnie tak samo jak wcześniej, ale w menedżerze mediów pojawią się dwie nowe zakładki: Prześlij do Amazon S3 i Biblioteka Amazon S3.
Po przesłaniu pliku z tej zakładki zostanie on automatycznie przesłany na Twoje konto Amazon S3. Każdy plik przesłany do S3 będzie dostępny z Twojej Biblioteki Mediów WordPress, tak jak każdy inny plik multimedialny.
Przesyłanie do Amazon S3 przez EDD
Po przesłaniu pliku z tej zakładki zostanie on automatycznie przesłany na Twoje konto Amazon S3.

Dodawanie plików już znajdujących się w Amazon S3 do EDD
Każdy plik przesłany do S3 będzie dostępny z Twojej Biblioteki Mediów WordPress, tak jak każdy inny plik multimedialny, za pośrednictwem Biblioteki Amazon S3 w menedżerze mediów.

Alternatywnie, możesz ręcznie dodać pliki do pola Adres URL pliku:

Ważne uwagi:
- Nie kopiuj i nie wklejaj adresu URL bezpośrednio z biblioteki Amazon S3 do pola Adres URL pliku. Spowoduje to wyświetlenie komunikatu o błędzie Odmowa dostępu podczas próby pobrania pliku.
- Wszystkie nazwy zasobników i folderów na Twoim koncie Amazon S3 muszą być pisane małymi literami i nie mogą zawierać żadnych znaków specjalnych. Zapoznaj się z dokumentacją Amazon dotyczącą ograniczeń nazewnictwa zasobników.
- Nie wszystkie wersje S3 są dostępne we wszystkich regionach. Ta tabela pokaże, które są dostępne w Twoim regionie.
- Pliki dostarczane przez AmazonS3 będą dostarczane jako „przekierowanie”, nawet jeśli Twój sklep jest ustawiony na „wymuszone”. Dowiedz się więcej.
Wymuszanie pobierania plików
Czasami Twoja przeglądarka internetowa będzie próbowała wyświetlić lub odtworzyć plik, który pobierasz, i zamiast zapisywać, możesz skończyć odtwarzając muzykę lub wideo w przeglądarce. Istnieje wiele sposobów, aby temu zapobiec i wymusić opcję zapisu, ale jeśli przechowujesz pliki na Amazon S3, wszelkie ustawienia na Twoim serwerze WWW są ignorowane.
Zamiast polegać na ustawieniach serwera WWW, musisz poprawnie skonfigurować opcje w S3. Oto jak powinny być ustawione.
Uwaga: To ustawienie jest stosowane do pliku i/lub folderu, ale nie do całego zasobnika
Otwieranie Właściwości
- W swoim zasobniku S3 znajdź plik, z którym chcesz pracować, i zaznacz go.
- Kliknij Akcje > Zmień metadane.

- Kliknij Dodaj metadane i ustaw Typ na Zdefiniowany przez system, Klucz na Content-Disposition i ustaw Wartość na attachment i Zapisz zmiany.

Spowoduje to wymuszenie pobrania zamiast odtwarzania lub wyświetlania w przeglądarce.
Częste problemy i pytania:
Pliki otwierają się w przeglądarce zamiast pobierać
Można to rozwiązać przez Wymuszenie pobierania plików.
Czy klienci będą mogli zobaczyć rzeczywisty adres URL pliku i po prostu pobrać go bezpośrednio?
Nie, klient zobaczy adres URL prowadzący do Twojego sklepu, gdzie EDD przetłumaczy lokalizację, dzięki czemu pobieranie będzie działać bez widoczności przez klienta oryginalnego adresu URL źródła Amazon.
Błąd: Problem z certyfikatem SSL: nie można uzyskać lokalnego certyfikatu wystawcy
Ten błąd oznacza, że certyfikat SSL na serwerze Twojej witryny jest nieprawidłowy lub nieprawidłowo zainstalowany. Aby to rozwiązać, skontaktuj się ze swoją firmą hostingową i poproś o weryfikację prawidłowej instalacji i ważności certyfikatu.
Błąd:Odmowa dostępu
Ten błąd oznacza, że używany identyfikator klucza dostępu i klucz tajny nie mają niezbędnych uprawnień do dostępu do zasobów i zasobników S3.
Aby to rozwiązać, musisz dołączyć nową politykę uprawnień do użytkownika IAM. Zobacz nasz
przewodnik po tworzeniu użytkownika IAM z odpowiednimi uprawnieniami, aby rozwiązać ten błąd.
Możesz również zobaczyć ten komunikat o błędzie, jeśli skopiowałeś adres URL z Amazon S3 i wkleiłeś go w pole Adres URL pliku swojego Pobrania. Zapoznaj się z powyższą uwagą dotyczącą prawidłowych kroków, które należy podjąć, aby połączyć pliki z Pobranymi.
Błąd:RequestTimeTooSkewed
Ten błąd występuje z powodu błędnej konfiguracji ustawień strefy czasowej serwera internetowego. Aby go rozwiązać, skontaktuj się ze swoją firmą hostingową i poproś o prawidłową rekonfigurację ustawień strefy czasowej.
Błąd:SignatureDoesNotMatch
Jeśli otrzymasz ten błąd, a następnie komunikat o błędzie mówiący
Obliczony przez nas podpis żądania nie pasuje do podanego podpisu, prawdopodobnie oznacza to, że nazwa Twojego zasobnika zawiera wielkie litery lub spacje. Aby rozwiązać problem, zmień nazwę zasobnika, tak aby nie zawierał żadnych wielkich liter. Możesz również utworzyć nowy zasobnik bez wielkich liter w nazwie, aby rozwiązać problem.
Błąd: NoSuchKey Określony klucz nie istnieje
Ten błąd występuje, gdy występuje problem ze sposobem nazwania pliku lub nawet zasobnika. Należy usunąć wszystkie znaki interpunkcyjne i specjalne.
Na przykład: Jeśli masz plik o nazwie test-file-one.mp4.zip zmień go 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 w Amazon S3, zapoznaj się z poniższymi krokami, aby rozwiązać problem.
- Sprawdź ustawienia hosta Amazon S3 w sekcji Downloads → Settings → Extensions → Amazon S3. Upewnij się, że host jest poprawnie skonfigurowany, w tym sprawdź, czy ustawiłeś właściwy region (więcej informacji na ten temat znajdziesz w punkcie dotyczącym hosta Amazon S3 powyżej).
- Upewnij się, że nazwa pliku mieści się w maksymalnym limicie 1024 znaków. Więcej informacji na temat poprawnego formatowania nazw plików znajdziesz w dokumentacji Amazon.
- Jeśli niedawno przełączyłeś się na nowe konto Amazon S3 i masz problemy z przesyłaniem plików do swoich zasobników, jest to zazwyczaj tymczasowy problem, który może wystąpić wkrótce po utworzeniu nowych zasobników lub kont. Powinien on zostać automatycznie rozwiązany po kilku godzinach. Więcej informacji na ten temat znajdziesz w dokumentacji Amazon.
- Nadal nic? Skontaktuj się z wsparciem technicznym i podaj dokładny komunikat o błędzie lub zachowanie, którego doświadczasz.
Aktualizacje licencji oprogramowania nieudane z powodu błędu pobierania. cURL error 8: Invalid Content-Length: value
Możliwe, że rozszerzenie Amazon S3 nie wymusza przekierowania dla pobrań. Jeśli widzisz ten błąd, spróbuj
ustawić metodę pobierania na Wymuszone.
Klient widzi komunikat Aktualizacja nieudana: Pobieranie nieudane. Błąd wewnętrzny serwera podczas próby aktualizacji wtyczki
Potwierdź, że plik źródłowy do użycia w automatycznych aktualizacjach jest wybrany w ustawieniach licencji pobierania.
Prawdopodobnie zobaczysz następujący krytyczny błąd PHP w pliku dziennika błędów PHP sklepu:
PHP Fatal error: Uncaught InvalidArgumentException: Found 2 errors while validating the input provided for the GetObject operation: [Key] is missing and is a required parameter [Key] expected string length to be >= 1, but found string length of 0 in /home/ph198/public_html/wp-content/plugins/edd-amazon-s3/vendor/aws/aws-sdk-php/src/Api/Validator.php:65


