Els destinataris que no poden obrir un fitxer pujat sovint senten que la VPN l’ha corromput. Això és una hipòtesi, no una observació, i és comprovable. Abans de tocar el túnel, estableix si l’objecte desat ara a la destinació difereix de l’objecte que s’havia d’enviar. Tota la resta se segueix d’aquesta resposta.

Comença pels bytes previstos, no per la queixa

Tria un fitxer inofensiu que reprodueixi el problema, o el fitxer real si la política permet que surti de l’entorn d’origen. Anota dues coses abans de la transferència: la mida exacta en bytes i un hash de contingut modern. Els noms de fitxer, les marques de temps i les previsualitzacions són metadades, i cap d’elles identifica el contingut.

Calcula el hash amb un algorisme que els dos extrems puguin executar i anota quin has fet servir. Una comparació entre SHA-256 i MD5 no és una comparació, i tampoc no ho és una comparació entre dos fitxers diferents que comparteixen nom per casualitat.

PS> Get-FileHash -LiteralPath "C:\uploads\report.csv" -Algorithm SHA256
Hash                                                        Path
----                                                        ----
9F2C...                                                      C:\uploads\report.csv

La referència de Get-FileHash de Microsoft documenta l’ordre i el seu paràmetre d’algorisme, just la part que la gent s’estalvia quan una comparació produeix una discrepància sense sentit.

Un hash per etapa, el mateix algorisme

Ara calcula el mateix algorisme sobre l’objecte desat on finalment viu, amb un mètode autoritzat i no amb una còpia que ha passat per una altra eina. Desar el fitxer rebut localment i fer el hash d’aquesta còpia afegeix un pas que no has provat.

Si el servei exposa un valor d’integritat propi, tracta’l com una observació separada. La suma de verificació que informa el proveïdor et pot dir què creu el proveïdor que ha desat, i no és la mateixa afirmació que la del que ha enviat el teu client.

Hi ha tres resultats possibles i apunten en direccions diferents. Hashes iguals volen dir que els bytes han arribat sense canvis. Hashes diferents amb una conversió coneguda volen dir que el servei ha produït intencionadament un objecte nou. Hashes diferents sense conversió volen dir que alguna cosa entre els dos punts ha alterat el contingut, i el pas següent és trobar la frontera més primerenca on això ha passat.

Separa la fallada de transferència de la transformació

Una pujada parcial i una pujada corrupta semblen idèntiques en un navegador de fitxers i són fallades diferents. Comprova si la transferència s’ha completat: un registre de l’aplicació que mostra una sol·licitud avortada, un fitxer desat la mida del qual és un prefix de l’origen, o un objecte que en realitat és una pàgina d’error desada amb l’extensió esperada, tots indiquen una transferència incompleta i no bytes alterats.

La transformació és l’altra explicació habitual. Un servei que recomprimeix imatges, reescriu els finals de línia d’un CSV o converteix un document produirà legítimament un hash diferent del d’origen, i això no és corrupció. Compara l’etapa que afirma ser la còpia fidel, no el format de presentació final.

El retard i la pèrdua pertanyen a una tercera categoria. Poden fer que un client esgoti el temps, reintenti o ho deixi córrer, i res d’això no implica que els bytes acceptats pel servidor s’hagin canviat en silenci. Mira el resultat de la transferència abans d’atribuir res al túnel.

Prova un segon camí sense canviar-ho tot

Si els hashes realment difereixen i no hi ha cap conversió, repeteix el mateix fitxer, client, protocol i destinació per un altre camí compatible, com ara una xarxa local en lloc de la VPN. Canvia una variable. Canviar el client, el punt final i l’eina alhora et dona un resultat que no pots atribuir.

Mantingues la comparació honesta en totes dues direccions. Un hash et diu que dos punts discrepen o coincideixen sobre el contingut; no et diu quin costat és fiable, així que mantingues el valor esperat i la verificació dins del model de confiança en què realment confies.

Acaba amb una frase concreta al tiquet: la transferència es va aturar aviat, l’aplicació va transformar l’objecte, l’emmagatzematge el va canviar, o els bytes coincideixen i llegir-los és la fallada. Cadascuna d’aquestes té un propietari diferent, i cap d’elles no és la VPN per defecte.

Articles relacionats