Object Storage Swift - Colocar un contenedor de Object Storage detrás de un nombre de dominio
Objetivo
Si crea un contenedor de tipo público, todo el mundo podrá acceder a sus datos, lo cual es una buena opción para compartir sus archivos en internet.
Sin embargo, para poder compartir sus archivos con sus amigos, por ejemplo, deberá proporcionarles una larga URL que suele ser difícil de retener. Además, también es posible que quiera utilizar esos objetos en su sitio web sin tener que utilizar por ello un dominio distinto.
Esta guía explica cómo configurar un dominio en sus contenedores para facilitar el acceso a ellos proporcionando una URL personalizada.
Requisitos
Para seguir todos los pasos de esta guía, es necesario:
- Añadir espacios de almacenamiento (EN)
- Tener un dominio registrado
La teoría
Cuando llega una petición HTTP al Object Storage de OpenStack, se realiza una comprobación en la cabecera «host»: si esta es distinta del nombre real del host, el sistema lo considera como un registro mapeado y envía una petición DNS para obtener el registro DNS completo que corresponde al host.
Si se encuentra un registro DNS, la respuesta se dividirá para encontrarlo y extraer el contenedor, la cuenta y el objeto buscado, y se reescribirá la petición.
El cliente debe haber colocado correctamente la cabecera «host». Si no, el Object Storage no podrá detectarla y procesar la petición.
HTTP y HTTPS
Esta funcionalidad funciona correctamente con HTTP. En cambio, obtendrá un error de certificado si utiliza HTTPS, ya que nosotros no tenemos su certificado privado.
Seguirá pudiendo utilizar HTTPS, pero recibirá alertas relativas al certificado en la mayoría de los navegadores recientes.
Registro CNAME o TXT
De estos dos registros, solo puede utilizarse uno al mismo tiempo:
-
CNAME: Es el registro histórico y por defecto. Utilícelo si puede gestionar la zona DNS. Seguirá a nuestro punto de acceso automáticamente, aunque cambie la dirección IP.
-
TXT: Utilícelo solo si necesita configurar el dominio en un soporte diferente, como una CDN. En este caso, deberá controlar si cambia la dirección IP del punto de acceso. También puede utilizar un CNAME «virtual» si lo permite su proveedor de CDN.
Con CNAME
Elija un subdominio (por ejemplo, static.mypersonaldomain.ovh), añada un registro de tipo CNAME e indique el destino como se indica a continuación.
Para que sea entendido por el Object Storage, el CNAME debe respetar las siguientes reglas (no olvide sustituir las variables, indicadas entre corchetes y en mayúsculas, por el valor correspondiente):
Por ejemplo, para un contenedor llamado «staticct» y un proyecto «123xxxx456» localizado en SBG:
Así pues, el registro DNS en este caso será:
Con TXT
Añada un registro de tipo TXT como se indica a continuación.
Para que sea entendido por el Object Storage, el TXT se construye con «_swift-remap.» seguido del subdominio. Por ejemplo, para el subdominio static.mypersonaldomain.ovh:
Al igual que el CNAME, debe respetar las siguientes reglas (no olvide sustituir las variables, indicadas entre corchetes y en mayúsculas, por el valor correspondiente):
Por ejemplo, para un contenedor llamado «staticct» y un proyecto «123xxxx456» localizado en SBG:
Así pues, el registro DNS en este caso será:
Si no quiere utilizar un subdominio, puede hacer lo siguiente:
Por último, hay que añadir un registro A para el (sub)dominio apuntando a la dirección IP del Object Storage de Public Cloud. Puede obtenerla con los siguientes comandos:
Atención
El nombre del contenedor no permite los siguientes caracteres:
- [ . ]
- [ _ ] (según el proveedor de DNS)
- letras mayúsculas
Además, es necesario sustituir «auth-ProjectID» por «auth_ProjectID».
Más información
Si necesita formación o asistencia técnica para implantar nuestras soluciones, póngase en contacto con su representante de ventas o haga clic en este enlace para obtener un presupuesto y solicitar un análisis personalizado de su proyecto a nuestros expertos del equipo de Servicios Profesionales.
Interactúe con nuestra comunidad de usuarios en https://community.ovh.com/en/.