Garrett
El problema que tengo es que necesito el Disposición del contenido: archivo adjunto encabezado para estar presente en CADA archivo que llega a mi cubo.
En WordPress, solo puedo usar .htaccess para cubrir los tipos de archivos en cuestión (videos), pero esas reglas no se extienden a mis descargas de S3, cuyos navegadores simplemente intentan abrir, en lugar de descargar.
Necesito una solución automática/predeterminada, ya que no soy el único que sube estos archivos (nuestro personal sube a través de WordPress y todas las cargas se almacenan en nuestro depósito S3). Entonces, usar Cloudberry u otros navegadores no es útil para esta situación. No puedo ajustar los archivos archivo por archivo (las cargas son demasiado frecuentes).
¿Hay alguna forma de hacer esto?
(Otra información: estoy usando el complemento “Amazon S3 y Cloudfront” en WordPress que es responsable de vincular los dos. Desafortunadamente, el sitio no es público, por lo que no puedo vincularlo).
jose011
Desafortunadamente, no hay forma de configurar esto para un depósito completo en S3, y también Cloudfront solo puede configurar Cache-Headers
Pero puedes establecer el parámetro de disposición de contenido al cargar archivos en S3.
Para los archivos existentes, debe cambiar el Encabezado, así que recorra cada objeto en el Cubo y cópielo a sí mismo usando los nuevos encabezados.
Todo lo que puedo decir ahora es que publique el código que carga el archivo en S3.
-
Supongo que el código responsable de la carga está aquí o por ahí (no es un tipo de PHP … así que solo lo intento): código.google.com/p/wordpress-s3/source/browse/trunk/tantan-s3/…
– Garrett
06/11/2013 a las 21:50
-
Actualización para 2022, puede configurar el encabezado de disposición de contenido y otros, seleccionando uno o más archivos y haciendo clic en “Acciones” => “Editar metadatos”.
– jake
11 de mayo a las 2:09
Primero, debe ubicar el código que coloca el objeto en el depósito. Puede usar el bloc de notas++ para buscar “ponerObjeto” dentro de los archivos php de cualquier complemento que esté utilizando. Un código de ejemplo de otro complemento de WP que almacena archivos en S3 es el siguiente:
$this->s3->putObject( array(
'Bucket' => $bucket,
'Key' => $file['name'],
'SourceFile' => $file['file'],
) );
Ahora, simplemente agregue ContentDisposition’ => ‘attachment’ así:
$this->s3->putObject( array(
'Bucket' => $bucket,
'Key' => $file['name'],
'SourceFile' => $file['file'],
'ContentDisposition' => 'attachment',
) );
Eso es todo 🙂
Sí, puede establecer el valor predeterminado Disposición de contenido encabezado para todos y cada uno de los próximos archivos de carga en su cubo S3 usando el Explorador de cubos Predeterminado del segmento rasgo.
Para archivos existentes, puede utilizar Actualizar metadatos opción que actualiza los metadatos en cada archivo existente en su depósito por lotes.
Solo necesitas –
Select Key as : Content-Disposition
Add Value as : attachment;filename={$file_name_without_path_$$}
Luego actualice los metadatos en los archivos.
Vea esta página para establecer Content-Disposition en su archivo.
Más referencias:
- http://www.bucketexplorer.com/documentation/amazon-s3–metadata-http-header-bucket-default-metadata.html
- http://www.bucketexplorer.com/documentation/amazon-s3–how-to-manage-http-headers-for-amazon-s3-objects.html
- http://www.bucketexplorer.com/documentation/amazon-s3–metadata-http-header-update-custom-metadata.html
Gracias
-
Sin embargo, esto solo es relevante para las cargas a través de Bucket Explorer, ¿correcto? ¿Esto no afectaría las cargas desde otras ubicaciones?
– Garrett
12 de noviembre de 2013 a las 18:47
-
Sí, los valores predeterminados de depósito funcionarán para la carga realizada con el Explorador de depósito.
– Neelam Sharma
13 de noviembre de 2013 a las 1:37