Tengo un gran cubo S3 con una estructura de "carpeta" anidada que contiene (entre otras cosas) archivos estáticos .json y .md. Tesis archivos están siendo servidos por S3 como text/plain
en lugar de la correcta application/json
y text/markdown
.
He actualizado los valores predeterminados del depósito para que las nuevas cargas tengan el tipo de contenido correcto.
¿Cuál es la mejor manera de recorrer el "árbol" y actualizar el tipo de contenido para los archivos que coinciden con una determinada extensión?
--acl=...
A menos que desee ensuciarse las manos con boto / python u otra API de AWS, sospecho que su mejor opción sería usar
$ aws s3api copy-object
con la--content-type
bandera para copiar un objeto en sí mismo, configurando el nuevo tipo de contenido.Aquí está la documentación para s3api.
No hace falta decir que debe probar esto primero, antes de ejecutarlo recursivamente en todo su cubo.
fuente
Después de cavar un poco, descubrí que la
s3cmd
herramienta puede hacer esto. Por ejemplo, para establecer archivos JSON en application / json:fuente
Como se mencionó anteriormente, puede usar la
aws
herramienta de Amazon y usar s3api para copiar objetos sobre sí mismo, y usarmetadata-directive=REPLACE
para cambiar el tipo de contenido.Estoy poniendo esto aquí, porque a veces querrás iterar en los nombres de archivo que están almacenados en la base de datos, y así es como puedes hacerlo a través de cli.
fuente