Tengo un proyecto con toneladas de usuarios y sus archivos cargados. La base de datos tiene todos los archivos disponibles, pero hace aproximadamente un año, al conectar el proyecto a Azure y migrar los archivos, se olvidaron algunos archivos en el proceso. Si bien el código ahora carga archivos automáticamente en Azure cuando los carga en la base de datos, intentar eliminar algunos archivos más antiguos causa problemas.
Actualmente, mi código verifica primero la eliminación de Azure y luego decide eliminar el archivo de la base de datos. Cuando intento eliminar un archivo que no existe en Azure, aparece el mensaje de error:
StorageError: The specified resource does not exist.
Esto significa que la lógica actual tampoco lo elimina de la base de datos. Siempre puedo ignorar el error de Azure y eliminarlo de todos modos, pero no sé cuál sería la mejor y más segura forma de hacerlo.
Lo más fácil probablemente sería eliminar el archivo de todos modos
if (!error) { deleteFile(); } else { console.log("Azure failed, deleting anyways", error); deleteFile(); }o eliminarlo únicamente, si el error es el mencionado.
if (!error) { deleteFile(); } else if (error.message === "The specified resource does not exist") { console.log("Resource doesn't exist, deleting anyways", error); deleteFile(); }Pero no sé lo suficiente sobre el mensaje de error. ¿Hay alguna otra razón para obtener el mismo mensaje de error y la posibilidad de eliminar un archivo en una situación incorrecta? ¿O hay otras razones por las que esto no debería hacerse? Busqué en la web usando el mensaje de error, pero encontré muchas publicaciones sobre permisos, ¿esto podría generar algún problema de seguridad?
Hay 2 posibles razones por las que puede obtener StorageError: The specified resource does not exist. :
Si no puede eliminar un blob por otros motivos (p. ej., autorización incorrecta, el blob está arrendado, etc.), recibirá un mensaje de error diferente.