Cuando intenté crear un archivo torrent a partir de un directorio que contiene varios directorios secundarios vacíos, fueron ignorados y omitidos en el archivo torrent. Me pregunto si esto es unqBittorrentcosa o una limitación de laBitTorrentprotocolo. ¿El protocolo BitTorrent le permite compartir directorios vacíos, preservando el árbol de archivos real?
Editar ⸺ Hay torrents que tienen directorios vacíos.
Sí, en realidad hay algunos. ¿Pero cómo?
Abierto con el editor BEncode
Cómo maneja qBittorrent estos misteriosos directorios vacíos
Respuesta1
Es imposible compartir directorios vacíos en el protocolo BitTorrent.
Todos los archivos en un metarchivo BitTorrent (archivo .torrent) se enumeran en la lista de "archivos" que se encuentra dentro del diccionario "información". Los directorios se almacenan como parte de la "ruta" a un archivo relativo al directorio raíz.
La especificación del protocolo BitTorrent v1 establece:
ruta: una lista de cadenas codificadas en UTF-8 correspondientes a nombres de subdirectorios, la última de las cuales es el nombre del archivo real (una lista de longitud cero es un caso de error).
Ver:https://www.bittorrent.org/beps/bep_0003.html
Esto significa que es imposible compartir directorios sin archivos, ya que el último elemento de una ruta siempre se interpretará como un nombre de archivo.
El siguiente ejemplo muestra cómo se almacenan las rutas de los archivos dentro de un archivo .torrent (formateado como JSON):
{
"info": {
"files": [
{
"length": 1647396,
"path": [
"stage_2_detailed_class_info.csv"
]
},
{
"length": 124100,
"path": [
"stage_2_test_images_jpg",
"0000a175-0e68-4ca4-b1af-167204a7e0bc.jpg"
]
},
],
"name": "kaggle-pneumonia-jpg",
}
}
Este torrent contiene dos archivos:
- kaggle-neumonía-jpg/stage_2_detailed_class_info.csv
- kaggle-neumonía-jpg/stage_2_test_images_jpg/0000a175-0e68-4ca4-b1af-167204a7e0bc.jpg"
El directorio "stage_2_test_images_jpg" sólo existe porque está contenido en la "ruta" del archivo "0000a175-0e68-4ca4-b1af-167204a7e0bc.jpg".
Si eliminamos "0000a175-0e68-4ca4-b1af-167204a7e0bc.jpg" del torrent, el directorio "stage_2_test_images_jpg" se convertiría en el último elemento de la "ruta" y se convertiría en un archivo en lugar de un directorio.