2010-04-10 9 views
8

En S3 API REST Estoy añadiendo metadatos para un objeto existente mediante el PUT (Copia) de comandos y la copia de la llave de la misma ubicación con 'x-amz-metadata-directive' = 'REPLACE'Cambio Contenido-Disposición de objeto S3 existente

Lo que yo quiero hacer es cambiar el nombre del archivo de descarga mediante el establecimiento de:

Content-Disposition: attachment; filename=foo.bar; 

Esto establece los metadatos correctamente, pero al descargar el archivo se sigue utilizando el nombre de la clave en lugar de 'foo.bar'

que nos ea navegador herramienta de software S3 para ver los metadatos y parece correcta (aparte de 'Content-Disposition' estar en minúsculas ya que es fue S3 me piden que firmar)

Luego, utilizando S3 Browser que acaba de presionar, a continuación, guardar sin cambiar nada y ¿¿¿ahora funciona???

¿Qué es lo que me falta? ¿Cómo es que la configuración de un metadato 'Content-Disposition: attachment; filename=foo.bar;' de mi aplicación web no funciona, pero funciona desde el navegador S3?

+0

¿No debería titularse esta pregunta algo así como "Cambiar contenido-Disposición del objeto S3 existente", ya que ese es el problema real que está tratando de resolver? – natevw

+0

sí, probablemente tenga más sentido, he cambiado el título ahora. Sin embargo, Content-Disposition y los metadatos se tratan de la misma manera – Daveo

Respuesta

7

resuelto:

El Doco en http://docs.amazonwebservices.com/AmazonS3/latest/dev/index.html?RESTAuthentication.html

parece estar mal que dice:

Aviso cómo se ordenan los encabezados 'X-amz-', espacio en blanco recortado, convertidos toLowerCase, y múltiples encabezados con el mismo nombre se han unido usando una coma para valores separados.

Observe que solo los encabezados Content-Type y Content-MD5HTTPentity aparecen en StringToSign. Los demás encabezados de entidad Content * no. Sin embargo, Content-Disposition se debe establecer específicamente y no se incluye como: x-amz-meta-Content-Disposition

Ahora funciona correctamente.

+12

En su camino, usted está diciendo que todos los nombres de los encabezados de los metadatos deben comenzar con "x-amz-meta-" y estar en minúsculas. Podrías haberlo dicho en lugar de pedirnos que "notáramos". – Eyal

Cuestiones relacionadas