amazon s3 - online - ¿Por qué los nombres de los depósitos S3 y Google Storage son un espacio de nombres global?
migrate from aws to google cloud (2)
"El espacio de nombre del depósito es global, al igual que los nombres de dominio"
Eso es más que una coincidencia.
El motivo parece bastante simple: se puede acceder a los depósitos y sus objetos a través de un nombre de host personalizado que es el mismo que el nombre del depósito ... y un depósito puede hospedar un sitio web estático completo , con S3 mapeando automáticamente las solicitudes del Host:
entrante Host:
encabezado en el cubo del mismo nombre.
En S3, estas URL variantes hacen referencia al mismo objeto "foo.txt" en el depósito "bucket.example.com". El primero funciona con el alojamiento web estático habilitado y requiere un DNS CNAME
(o Alias
en la ruta 53) o un DNS CNAME que apunta al punto final REST regional; los otros no requieren configuración
http://bucket.example.com/foo.txt
http://bucket.example.com.s3.amazonaws.com/foo.txt
http://bucket.example.com.s3[-region].amazonaws.com/foo.txt
http://s3[-region].amazonaws.com/bucket.example.com/foo.txt
Si un servicio de almacén de objetos necesita un mecanismo simple para resolver el encabezado Host:
en una solicitud entrante HTTP en un nombre de depósito, el espacio de nombre del nombre del depósito también debe ser global. Cualquier otra cosa, al parecer, complicaría la implementación de manera significativa.
Para que los nombres de host se puedan correlacionar con los nombres de los depósitos, algo tiene que ser globalmente único, ya que obviamente no hay dos cubos que puedan responder al mismo nombre de host. La restricción que se aplica al nombre del cubo en sí no deja lugar a la ambigüedad.
También parece probable que a muchos clientes potenciales no les gustaría que su cuenta se identificara en nombres compartidos.
Por supuesto, siempre puede agregar su identificación de cuenta, o cualquier cadena aleatoria, al nombre de su depósito deseado, por ejemplo, jozxyqk-nómina, personal jozxyqk, si el nombre del depósito que deseaba no estaba disponible.
Esto me tiene desconcertado. Obviamente, puedo entender por qué los ID de cuenta son globales, pero ¿por qué los nombres de los depósitos?
¿No tendría más sentido tener algo como: https://accountID.storageservice.com/bucketName
Que espacios de espacios de nombres en accountID.
¿Qué me estoy perdiendo, por qué estos obviamente arquitectos de élite optaron por manejar los nombres de cubo de esta manera?
Cuanto más bebo, mayor es el sentido del siguiente concepto, por lo que lo elevé de un comentario sobre la respuesta aceptada a su propia entidad:
Un pensamiento adicional que me vino a la cabeza al azar esta noche:
Dada la capacidad de utilizar los nombres de host genéricos que proporcionan los diversos servicios de tienda de objetos, uno podría oscurecer fácilmente su identidad corporativa (u otra) como propietario de cualquier recurso de datos dado.
Entonces, digamos que Black Hat Corp
alberga un recurso de datos en http://s3.amazonaws.com/obscure-bucket-name/something-to-be-dissassociated.txt
.
Sería muy difícil para cualquier entidad no gubernamental determinar quién es el propietario de ese recurso sin la cooperación del proveedor de la tienda objeto.
No nefasto por diseño, solo pragmatismo objetivo.
Y posiblemente un golpe de brillantez por parte de los arquitectos de este paradigma