Comment ajouter un en-tête HTTP Cache-Control aux images que je télécharge sur Amazon S3?
-
05-07-2019 - |
Question
Je pense que je manque probablement quelque chose dans la documentation ici, mais comment puis-je spécifier que les images que j'ai téléchargées sur S3 ont un en-tête Cache-Control lorsque demandé?
Cette réponse semble suggérer que vous pouvez le faire en ajoutant des métadonnées, mais l'exemple n'est pas trop clair. Quelqu'un peut-il m'indiquer un exemple de code ou de la documentation sur la manière de procéder, s'il vous plaît, en C #?
La solution 2
Eh bien, il s'avère que cela est possible en utilisant l'API REST pour S3, mais pas en utilisant les méthodes SOAP. Donc, la réponse pour moi est simplement «non» - à moins de réécrire tout notre code pour utiliser l'API REST.
Autres conseils
Pour ceux qui liront cette question plus récemment, vous pouvez utiliser la La propriété Headers.CacheControl de TransferUtilityUploadRequest (Remarque: au moment de la rédaction de la documentation AWS, il n’est pas évident qu’il s’agisse d’une propriété disponible).
par exemple
// Make the upload request with the required cache and header parameters
var fileTransferUtilityRequest = new TransferUtilityUploadRequest
{
BucketName = BucketName,
FilePath = fileName,
StorageClass = S3StorageClass.Standard,
Key = keyName,
CannedACL = S3CannedACL.PublicRead,
ContentType = contentType,
};
fileTransferUtilityRequest.Headers.CacheControl = "max-age=604800";
var fileTransferUtility = new TransferUtility(...);
fileTransferUtility.Upload(fileTransferUtilityRequest);