Mi sitio web está alojado en China y, como saben, todos los sitios web chinos deben registrarse para obtener una licencia del gobierno; por lo tanto, todos los sitios web chinos están bajo supervisión.
Alguien informó recientemente a mi proveedor de servicios CDN, Qiniu (que también es una empresa china), de que algunas imágenes de mi sitio web son ilegales. Mi proveedor de CDN me informó que debía eliminar estas imágenes y “actualizar la caché de las URL”, de lo contrario podrían suspender mi cuenta según la ley. Sin embargo, descubrí que estas imágenes eran avatares de usuarios, y no sé cómo eliminarlos.
Según How to Delete Uploaded Files? - #3 by codinghorror y How to Delete Uploaded Files? - #25 by Falco, las imágenes cargadas sin referencias se eliminarán automáticamente en 48 horas. He reemplazado estos avatares de usuario por los predeterminados con letras, pero después de 72 horas no parece haber ocurrido nada con los avatares antiguos; quizás sea porque los avatares de usuario no se consideran imágenes cargadas.
¿Alguna idea sobre cómo puedo eliminar completamente los archivos de los avatares de usuario en mi servidor?
Lo siento. Los avatares funcionan de manera diferente. Tendría que revisar el código para saber dónde buscar. Si esto es una emergencia y tienes presupuesto, por favor contáctame directamente. De lo contrario, probablemente no tendré tiempo libre para investigarlo. Quizás alguien más lo sepa.
Para evitar que los usuarios suban nuevos avatares, puedes desactivar la opción allow uploaded avatars (permitir avatares subidos) y activar la configuración del sitio selectable avatars (avatares seleccionables) con una gran selección.
Creo que es posible que necesites subir un marcador de posición de reemplazo para que se produzca la eliminación automática; el registro del usuario sigue manteniendo activa la imagen del avatar subido, aunque no se esté utilizando.
Los archivos subidos se nombran según el SHA1 del contenido de la imagen; eso podría ayudarte a encontrar el archivo de respaldo.
Tengo más de 7 mil usuarios registrados y menos de 5 utilizan avatares ilegales sin saberlo, así que no quiero convertir esto en un problema de 0 o 1; prefiero resolverlo caso por caso en lugar de impedir que todos los usuarios usen avatares personalizados.
¿Es esto un fragmento de código? ¿Dónde y cómo lo ejecuto? Solía ser desarrollador de iOS y no estoy familiarizado con la programación del lado del cliente.
root@iosre:~# cd /var/discourse/shared/
root@iosre:/var/discourse/shared# /var/discourse/launcher enter app
ADVERTENCIA: La versión de Docker 17.05.0-ce está obsoleta; se recomienda actualizar a 17.06.2 o superior.
root@iosre-app:/var/www/discourse# rails c
[1] pry(main)> a=UserAvatar.where(user_id: 1234)
=> []
[2] pry(main)> a=UserAvatar.where(user_id: lincwee)
NameError: variable o método local no definido `lincwee' para main:Object
de (pry):2:in `__pry__'
[3] pry(main)> a=UserAvatar.where(user_id: 'lincwee')
=> []
[4] pry(main)>
para listar todas las URLs de avatares y las eliminé de mi servidor.
Pero supongo que todavía necesito actualizar más el sistema o la caché. ¿Cómo debería hacerlo?
Como pueden ver, se trata de dos avatares de usuarios que son memes de un ex presidente chino. De nuevo, el proveedor de CDN me pidió que eliminara estos archivos del servidor y actualizara la CDN.
Pude ver por los enlaces que los usuarios eran “baal998” y “lincwee”. Según el fragmento de código de mi última publicación, la URL del avatar subido de “lincwee” era /uploads/default/original/2X/5/55512211b1c8969c8038b79840464952cd3eb089.jpeg, mientras que para “baal998” era /uploads/default/original/2X/c/cb2188eaeecc3a648f021fa00da4734bd60ca183.jpg. Ejecuté entonces find /var/discourse/shared/ -name *55512211b1c8969c8038b79840464952cd3eb089* y eliminé todos los archivos encontrados; funcionó para “lincwee”. Pero no tuve suerte con “baal998”; aún podía acceder a https://iosre.com/user_avatar/iosre.com/baal998/135/2210_2.png, aunque ya no hubiera archivos con el nombre *cb2188eaeecc3a648f021fa00da4734bd60ca183*.
O para hacerlo más sencillo: ¿Cómo analiza Discourse una visita a https://iosre.com/user_avatar/iosre.com/baal998/135/2210_2.png? Si alguien familiarizado con el código fuente puede indicarme el archivo o la clase/función correspondiente, sería de gran ayuda. ¡Gracias!
Además, empieza extrayendo desde tu servidor, no desde la CDN. Quieres asegurarte de que estás resolviendo el problema en el lugar correcto. Una vez que estés seguro de que el servidor no está enviando las imágenes, puedes trabajar con la CDN.
Sí, y puedes ver que se está enviando desde tu servidor. Así que ese es el enlace que debes intentar corregir. Después de que logres que deje de enviar las imágenes, puedes limpiar la CDN.