Amazon S3 n'envoie pas d'en-tête Content-Type

10

J'ai une application qui télécharge du contenu à partir de diverses sources. Il repose sur l'en-tête "Content-Type" défini sur les images. La majorité des serveurs Web le font correctement, mais il semble que le serveur Amazon S3 ne définit pas le type de contenu.

Je suppose que les serveurs Amazon sont configurés correctement, alors quel pourrait être le problème? Ces images ne sont-elles pas téléchargées correctement? Ou ne devrais-je pas compter sur le type de contenu défini?

Exemple

Merci


la source
Je pense que vous pouvez définir le type de contenu lors du téléchargement du fichier sur Amazon S3. Je ne sais pas ce qu'il fait sur les en-têtes de type de contenu par défaut. Et cela ne vous aide évidemment pas quand ce ne sont pas vos fichiers.
WheresAlice
Je l'ai vu, mais n'ayant pas de compte, je ne peux pas l'essayer. Connaître la réponse ne résoudrait pas mon problème, mais cela pourrait suggérer que je ne contourne pas le type de contenu.

Réponses:

7

Les fichiers téléchargés sur S3 doivent avoir renseigné l'en-tête Content-Type. Il n'y a pas de définition de type de contenu par défaut comme celles que vous pouvez faire sur un serveur Web de contenu "normal" (ce qui ne serait pas une si mauvaise idée!) Par dossier.

Norberto
la source
1

Lors du téléchargement d'objets vers S3, vous avez la possibilité de définir un type MIME qui sera renvoyé dans l'en-tête Content-Type aux clients. S3 n'ajoutera pas cet en-tête de lui-même, donc si l'utilisateur n'a pas défini cette valeur, aucun en-tête Content-Type ne sera retourné.

Les serveurs HTTP ne sont pas tenus de fournir l'en-tête Content-Type, je suggère donc un mécanisme de secours. Peut-être pourriez-vous regarder l'URL et deviner à partir de l'extension du fichier? C'est un peu un hack, mais cela fonctionnerait au moins dans l'exemple que vous avez fourni.

Martin M
la source
1

Vous devez régler cela.

Sur la console de gestion aws, si vous accédez au fichier en question, vous pouvez cliquer sur "propriétés". Puis en bas de l'écran sur les métadonnées. Si le type de contenu de clé est défini, modifiez-le comme vous le souhaitez, sinon ajoutez une nouvelle clé, sélectionnez Type de contenu et définissez-le sur la valeur appropriée.

Decado
la source