La fonctionnalité Amazon S3 pour Easy Digital Downloads (EDD) vous permet d'héberger vos fichiers de téléchargement dans votre compte Amazon S3. C'est plus sécurisé et fiable que de stocker les fichiers directement sur votre propre compte d'hébergement.
Ce guide vous accompagne dans la création d'un utilisateur IAM dans AWS, la connexion de votre compte Amazon S3 à EDD, et l'utilisation d'Amazon S3 une fois que tout est configuré.
Note : Amazon S3 est une fonctionnalité Pro qui nécessite au moins un pass Extended.
Activation d'Amazon S3
Pour installer la fonctionnalité Amazon S3 dans votre boutique EDD, allez dans Téléchargements » Extensions, recherchez Amazon S3, et cliquez sur Installer.

Consultez Comment installer une extension ? pour en savoir plus sur l'installation et l'activation des fonctionnalités.
Une fois qu'elle est active, vous trouverez les paramètres Amazon S3 sous Téléchargements » Paramètres » Extensions » Amazon S3. Vous y entrerez vos informations d'identification AWS une fois les étapes ci-dessous terminées.
Création d'un compte IAM
Pour connecter Easy Digital Downloads à votre compte Amazon S3, vous devez créer un utilisateur IAM dans AWS et lui attacher une politique d'autorisations.
Une fois cela fait, vous générerez une clé d'accès et une clé secrète pour cet utilisateur, puis vous entrerez les deux sous Téléchargements » Paramètres » Extensions » Amazon S3 sur votre site WordPress.
Connexion à votre compte Amazon S3
Si vous n'avez pas encore de compte AWS, créez-en un sur Amazon S3 avant de continuer.
Connectez-vous à votre compte Amazon S3 et allez sur la page Utilisateurs. Vous pouvez trouver cette page en cliquant sur le nom de votre compte dans le coin supérieur droit, puis sur Identifiants de sécurité » Utilisateurs sous Gestion des accès sur le côté gauche de la page.
Configuration de votre utilisateur IAM
Si vous avez déjà un utilisateur IAM que vous souhaitez utiliser, sélectionnez cet utilisateur.
Ajouter un utilisateur
Si vous avez besoin d'un nouvel utilisateur, cliquez sur le bouton Créer un utilisateur et suivez les instructions. Vous devrez obtenir des identifiants de sécurité et attacher une politique d'autorisations à l'utilisateur.

Définir les détails de l'utilisateur
Entrez un nom d'utilisateur de votre choix et cliquez sur Suivant.

Définir les autorisations
Sur l’écran suivant, vous définirez les autorisations de l’utilisateur.
- Sélectionnez Attacher directement les politiques.
- Dans la zone Filtrer , entrez « S3full » pour limiter les résultats aux politiques Amazon S3.
- Cochez la case AmazonS3FullAccess.
- Ignorez la section « Définir la limite des autorisations – facultatif ».
- Cliquez sur Suivant.

Vous voulez des autorisations plus restrictives au lieu d’un accès complet au compte ? AmazonS3FullAccess accorde l’accès à tous les compartiments et à toutes les opérations S3 de votre compte AWS. Voir Limiter l’accès à des compartiments spécifiques ci-dessous pour une politique limitée au compartiment utilisé par EDD.
Vérifier et créer
Confirmez que vos autorisations correspondent aux étapes ci-dessus, puis cliquez sur Créer un utilisateur.

Obtenir les clés d'accès
Vous aurez besoin d’un utilisateur IAM configuré avec les autorisations des étapes ci-dessus. Si vous avez déjà un utilisateur IAM avec les autorisations AmazonS3FullAccess, vous pouvez l’utiliser.
Accédez au nom d’utilisateur IAM que vous avez créé, répertorié sur votre page AWS Utilisateurs. Sélectionnez l’onglet Identifiants de sécurité, puis Créer une clé d’accès.

Sélectionnez Service tiers et cochez Confirmer.

Sur l’écran suivant, sélectionnez Créer une clé d’accès. Vous n’avez pas besoin d’ajouter une balise de description.

Enregistrez votre Clé d’accès et votre Clé d’accès secrète.

Remarque : Vous ne pourrez plus accéder à la clé secrète pour cet utilisateur, alors assurez-vous de l’enregistrer dans un endroit sûr. Si vous perdez les identifiants, vous devrez créer une nouvelle clé d’accès.
Votre utilisateur IAM devrait maintenant avoir l’autorisation complète d’accéder et de télécharger des fichiers dans le compartiment S3. Cela donne à votre boutique EDD l’accès à vos fichiers et la capacité de créer des liens de téléchargement sécurisés pour les clients.
Votre utilisateur IAM a maintenant l’autorisation d’accéder et de télécharger des fichiers dans le compartiment S3, donnant à votre boutique EDD l’accès à vos fichiers et la capacité de créer des liens de téléchargement sécurisés pour les clients.
Ajoutez votre Clé d’accès et votre Clé d’accès secrète aux paramètres Amazon S3 de votre boutique EDD sous Téléchargements » Paramètres » Extensions » Amazon S3.

Si vous avez besoin d’aide supplémentaire pour créer des utilisateurs IAM ou attacher des politiques, consultez le guide d’Amazon sur la création d’utilisateurs IAM.
Limiter l'accès à des compartiments spécifiques
Si votre compte S3 est utilisé à d’autres fins et que vous souhaitez limiter votre utilisateur IAM (celui utilisé par votre boutique EDD) à des compartiments spécifiques, créez une politique personnalisée au lieu d’utiliser AmazonS3FullAccess.
Sélectionnez Attacher directement les politiques, puis Créer une politique.

Ajoutez les détails de la politique ci-dessous via l’éditeur JSON. Remplacez bucket-name-here par le nom du ou des compartiments auxquels vous souhaitez que votre boutique EDD accède.
{
"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": "*"
}
]
}
Avec cette politique, tous vos noms de compartiments sont toujours visibles, mais seuls les compartiments listés dans la section Ressource sont accessibles. Si EDD tente d'accéder à un compartiment qui n'est pas dans la liste Ressource, vous verrez une erreur PHP.
Configuration d'Amazon S3
Si ce n'est pas déjà fait, allez dans Téléchargements » Paramètres » Extensions » Amazon S3 pour entrer vos clés d'accès et secrètes Amazon S3.

Entrer un bucket par défaut
Sur cet écran, vous entrerez également d'autres informations de compte comme votre Compartiment par défaut Amazon S3.

C'est le compartiment par défaut vers lequel vous souhaitez que les fichiers soient téléchargés. Pour créer de nouveaux compartiments ou voir une liste de vos compartiments actuels, allez dans votre Console S3 (vous devrez vous connecter pour y accéder).
Créez le compartiment que vous souhaitez utiliser par défaut. Vous pouvez toujours choisir un compartiment différent par fichier lors du téléchargement.
Définir les autorisations du bucket
Activez Bloquer tout accès public pour votre compartiment afin de restreindre l'accès non autorisé aux fichiers. EDD fournit un accès temporaire aux fichiers pour les clients, de sorte que le compartiment lui-même n'a pas besoin d'être public.

Entrer un point de terminaison Amazon S3 (facultatif)
Le Point d'accès Amazon S3 est le point d'accès que votre compartiment utilise.
Vous pouvez généralement laisser ce champ vide. Si votre site a des difficultés à accéder à votre compartiment, essayez de le changer pour le point d'accès de la région de votre compartiment.
Trouvez la région de votre compartiment en vous connectant à votre compte Amazon S3, en cliquant sur S3, et en vérifiant la colonne de région à côté de chaque compartiment. Trouvez ensuite le point d'accès correspondant sur la Documentation des régions S3 d'Amazon.

Copiez et collez ce point d'accès dans le champ, puis enregistrez.
Le champ Point d'accès Amazon S3 fonctionne également avec Cloudflare R2 et d'autres fournisseurs de stockage compatibles S3, pas seulement AWS. Si vous utilisez R2 ou un service similaire, entrez son point d'accès ici de la même manière.
Durée de validité du lien (facultatif)
Le dernier champ de paramètre sur l'écran d'extension EDD Amazon S3 est Durée de validité du lien. C'est le nombre de minutes pendant lesquelles l'URL de téléchargement générée dynamiquement reste valide.
Lorsqu'un client clique sur un lien de téléchargement, EDD génère une nouvelle URL temporaire pour le fichier sur Amazon S3. Ce paramètre contrôle la durée pendant laquelle cette URL fonctionne avant d'expirer.
Si vous laissez ce champ vide, le lien reste valide pendant 5 minutes par défaut.
Nom du dossier FES (facultatif)
Si vous utilisez Soumissions côté client en parallèle avec Amazon S3, ce paramètre contrôle la façon dont les fichiers des fournisseurs sont organisés dans votre compartiment S3. Choisissez si les fichiers sont stockés dans des dossiers nommés d'après le nom d'utilisateur de chaque fournisseur ou leur identifiant utilisateur.
Voir Amazon S3 et Soumissions côté client pour en savoir plus sur la façon dont les deux fonctionnalités fonctionnent ensemble.
Utilisation d'Amazon S3 avec EDD
Vous téléchargez des fichiers vers un produit téléchargeable de la même manière qu'auparavant, mais cette fonctionnalité vous donne deux nouveaux onglets dans l'outil de téléversement de médias : Téléverser vers Amazon S3 et Bibliothèque Amazon S3.

Téléchargement vers Amazon S3 via EDD
Lorsque vous téléversez un fichier depuis l'onglet Téléverser vers Amazon S3, Easy Digital Downloads le téléverse automatiquement sur votre compte Amazon S3.
Tout fichier que vous téléchargez de cette manière est également accessible depuis votre médiathèque WordPress, tout comme n'importe quel autre fichier multimédia.

Ajouter des fichiers déjà sur AWS à EDD
Tout fichier déjà sur S3 est accessible depuis votre médiathèque WordPress via l'onglet Amazon S3 Library dans l'outil d'importation de médias.

Vous pouvez également ajouter des fichiers manuellement dans le champ URL du fichier.

Le champ accepte plusieurs formats différents :
- Format de l'outil d'importation de médias :
nom-du-bucket/nom-du-fichier.zip - URL de style virtuel : par exemple,
https://nom-du-bucket.s3.amazonaws.com/nom-du-fichier.zip - URL de style chemin : par exemple,
https://s3.amazonaws.com/nom-du-bucket/nom-du-fichier.zip - URL de point d'accès régional : par exemple,
https://nom-du-bucket.s3.code-region.amazonaws.com/nom-du-fichier.zip
Important ⚠️
- Ne copiez pas et ne collez pas l'URL directement depuis votre bibliothèque Amazon S3 dans le champ URL du fichier. Cela provoque une erreur d'accès refusé lorsque le client tente de télécharger le fichier. Utilisez plutôt l'un des formats ci-dessus.
- Tous les noms de buckets et de dossiers de votre compte Amazon S3 doivent être en minuscules et sans caractères spéciaux. Consultez la documentation d'Amazon sur les restrictions de nommage des buckets.
- Toutes les versions de S3 ne sont pas disponibles dans toutes les régions. Ce tableau montre celles qui sont disponibles dans votre région.
- Les fichiers livrés via Amazon S3 sont toujours livrés en redirection, même si votre boutique est configurée sur Forcé.
Utilisation d'Amazon S3 avec CFM
Si vous utilisez Checkout Fields Manager en parallèle avec Amazon S3, les fichiers que les clients téléchargent via les formulaires CFM lors du paiement sont automatiquement envoyés vers votre bucket Amazon S3 et stockés dans un dossier cfm/. Vous n'avez rien de plus à configurer.
Une fois vos identifiants Amazon S3 configurés sous l'onglet Extensions » Amazon S3, cela se produit automatiquement pour tout champ de téléchargement de fichier dans un formulaire Checkout Fields Manager.
Forcer le téléchargement des fichiers
Parfois, votre navigateur essaie d'afficher ou de lire un fichier au lieu de le télécharger, comme ouvrir de la musique ou une vidéo directement dans le navigateur. Vous pouvez généralement résoudre ce problème avec les paramètres de votre serveur web, mais les fichiers stockés sur Amazon S3 ignorent complètement les paramètres de votre serveur web.
Au lieu de cela, vous devez le configurer directement dans S3.
Remarque : Ce paramètre s'applique aux fichiers ou dossiers individuels, pas à l'ensemble du bucket.
Ouverture des propriétés du fichier
Dans votre bucket S3, trouvez le fichier avec lequel vous voulez travailler, sélectionnez-le et cliquez sur Actions » Changer les métadonnées.
Cliquez sur Ajouter des métadonnées, définissez le Type sur Défini par le système, la Clé sur Content-Disposition, et la Valeur sur attachment. Cliquez sur Enregistrer les modifications.

Cela force le téléchargement du fichier au lieu de sa lecture ou de son affichage dans le navigateur.
Dépannage et FAQ
Les fichiers s'ouvrent dans le navigateur au lieu de se télécharger
Voir Forcer le téléchargement des fichiers ci-dessus.
Les clients peuvent-ils voir l'URL Amazon S3 réelle et télécharger le fichier directement ?
Non. Les clients voient une URL pointant vers votre propre boutique. EDD traduit l'emplacement en coulisses, de sorte que le téléchargement fonctionne sans exposer l'URL source originale d'Amazon S3.
Erreur : problème de certificat SSL : impossible d'obtenir le certificat de l'émetteur local
Cela signifie que le certificat SSL sur le serveur de votre site Web est invalide ou mal installé. Contactez votre société d'hébergement et demandez-leur de vérifier que le certificat est correctement installé.
Erreur : Accès refusé
Cela signifie que l'ID de clé d'accès et la clé secrète que vous utilisez n'ont pas les autorisations nécessaires pour accéder à vos compartiments et ressources S3.
Pour résoudre ce problème, attachez une nouvelle politique d'autorisations à l'utilisateur IAM. Voir Création d'un compte IAM ci-dessus pour les autorisations correctes.
Vous pouvez également rencontrer cette erreur si vous avez copié une URL directement depuis Amazon S3 et l'avez collée dans le champ URL du fichier de votre téléchargement.
Erreur : L'heure de la requête est trop décalée
Cela se produit lorsque les paramètres de fuseau horaire de votre serveur Web sont mal configurés. Contactez votre société d'hébergement et demandez-leur de reconfigurer les paramètres de fuseau horaire.
Erreur : La signature ne correspond pas
Si vous voyez cette erreur avec "La signature de la requête que nous avons calculée ne correspond pas à la signature que vous avez fournie", le nom de votre compartiment contient probablement des lettres majuscules ou des espaces. Renommez votre compartiment, ou créez-en un nouveau, en utilisant uniquement des lettres minuscules et sans espaces.
Erreur : NoSuchKey La clé spécifiée n'existe pas
Cela se produit lorsqu'il y a un problème avec la façon dont le fichier ou le compartiment est nommé. Supprimez toute ponctuation et caractères spéciaux du nom.
Par exemple, changez test-file-one.mp4.zip en testfileone.zip .
Autres erreurs ou problèmes lors du téléchargement de fichiers sur Amazon S3
Si vous rencontrez des difficultés pour téléverser des fichiers sur Amazon S3 ou pour accéder aux fichiers existants, essayez ces étapes :
- Vérifiez votre paramètre de point de terminaison Amazon S3 sous Téléchargements » Paramètres » Extensions » Amazon S3. Assurez-vous qu'il est correctement configuré, y compris la bonne région. Voir Point de terminaison Amazon S3 ci-dessus.
- Assurez-vous que le nom de votre fichier est inférieur à la limite de 1024 caractères. Voir la documentation d'Amazon sur la mise en forme correcte des noms de fichiers.
- Si vous avez récemment basculé vers un nouveau compte Amazon S3 et que vous ne parvenez pas à téléverser des fichiers dans votre compartiment, cela est généralement temporaire et se résout en quelques heures. Voir la documentation d'Amazon pour plus d'informations.
- Toujours bloqué ? Contactez le support avec le message d'erreur exact ou le comportement que vous observez.
Mises à jour de licence logicielle échouant avec "Échec du téléchargement. Erreur cURL 8 : valeur Invalid Content-Length"
Cela signifie généralement que la fonctionnalité Amazon S3 ne force pas les téléchargements par redirection. Essayez de définir la méthode de téléchargement sur Forcé.
Le client voit "Échec de la mise à jour : Échec du téléchargement. Erreur interne du serveur" lors de la mise à jour d'un plugin
Confirmez que le fichier source utilisé pour les mises à jour automatiques est sélectionné dans les paramètres de licence du téléchargement.
Vous verrez probablement cette erreur fatale PHP dans le journal d'erreurs PHP de votre boutique :
Erreur fatale PHP : Uncaught InvalidArgumentException : 2 erreurs trouvées lors de la validation des entrées fournies pour l'opération GetObject : [Key] est manquant et est un paramètre requis [Key] attendait une longueur de chaîne de >= 1, mais a trouvé une longueur de chaîne de 0 dans /home/ph198/public_html/wp-content/plugins/edd-amazon-s3/vendor/aws/aws-sdk-php/src/Api/Validator.php:65
