¿Cómo agrego un encabezado HTTP de Cache-Control a las imágenes que subo a Amazon S3?
-
05-07-2019 - |
Pregunta
Creo que probablemente me esté perdiendo algo en los documentos aquí, pero ¿cómo puedo especificar que las imágenes que subo a S3 tienen un encabezado de Cache-Control cuando se solicita?
Esta respuesta parece sugerir que puede hacerlo agregando metadatos, pero el ejemplo no es demasiado claro. ¿Alguien puede indicarme un ejemplo de código o alguna documentación sobre cómo haría esto en C #, por favor?
Solución 2
Bueno, resulta que esto es posible utilizando la API REST para S3, pero no utilizando los métodos SOAP. Así que la respuesta para mí es simplemente 'no', a menos que reescribamos todo nuestro código para usar la API REST.
Otros consejos
Para aquellos que lean esta pregunta más recientemente, puede usar La propiedad Headers.CacheControl de TransferUtilityUploadRequest (Nota: Al momento de escribir la documentación de AWS no es obvio que esta es una propiedad disponible).
por ejemplo
// 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);