S3 no respeta los espacios de nombres jerárquicos. Cada depósito simplemente contiene una serie de asignaciones de clave a objeto (junto con metadatos asociados, ACL, etc.).
Aunque la clave de su objeto puede contener un '/', S3 trata la ruta como una cadena simple y coloca todos los objetos en un espacio de nombres plano.
En mi experiencia, las operaciones LIST toman (linealmente) más tiempo a medida que aumenta el recuento de objetos, pero esto probablemente sea un síntoma del aumento de E / S requerido en los servidores de Amazon, y en el cable hasta su cliente.
Sin embargo, los tiempos de búsqueda no parecen aumentar con el recuento de objetos; lo más probable es que sea algún tipo de implementación de tabla hash O (1) en su extremo, por lo que tener muchos objetos en el mismo depósito debería tener el mismo rendimiento que los depósitos pequeños para el uso normal (es decir, no LISTAS).
En cuanto a la ACL, las concesiones se pueden establecer en el depósito y en cada objeto individual. Como no hay jerarquía, son sus únicas dos opciones. Obviamente, establecer tantas concesiones para todo el depósito reducirá enormemente los dolores de cabeza de administrador si tiene millones de archivos, pero recuerde que solo puede otorgar permisos, no revocarlos, por lo que las concesiones para todo el depósito deberían ser el subconjunto máximo de la ACL para todos. su contenido.
Recomendaría dividir en cubos separados para:
- contenido totalmente diferente: tener depósitos separados para imágenes, sonido y otros datos hace que la arquitectura sea más sana
- LCA significativamente diferentes: si puede tener un depósito en el que cada objeto reciba una LCA específica, o dos depósitos con LCA diferentes y sin LCA específicas del objeto, tome los dos depósitos.