La migliore tecnica per spingere molti record e file su un sistema: WEB API o FTP

3

Ho un sito web in cui gli utenti possono caricare manuali (documenti PDF) per i loro prodotti. Fondamentalmente, per prima cosa aggiungono il prodotto al sistema e quindi aggiungono 1 o più manuali a quel prodotto. Un manuale può avere più versioni e tutte le versioni dovrebbero essere disponibili nel sistema. Inoltre, i manuali possono contenere più lingue. Questo è brevemente.

Questo approccio ha sempre funzionato bene, ma ultimamente abbiamo avuto clienti con tonnellate di prodotti / manuali e già proprietario di un sistema contenente tali dati. Non sono interessati a aggiungere manualmente tutti quei dati, vogliono che un sistema spinga automaticamente i loro prodotti e manuali sul nostro sito Web, inclusi gli aggiornamenti e le eliminazioni. Quindi è fondamentalmente un'operazione a 1 direzione dal loro sistema al nostro sito web.

Ho già creato API WEB, ma era limitato e consisteva solo nello scambio di dati registrati, non di file e certamente non in una raccolta di dati / file. Quindi la mia prima domanda sarebbe: posso pubblicare una raccolta di dati con una raccolta di file associati a tali dati su un'API WEB?

per esempio:.

  • Prodotto A
    • Manual1.PDF
    • Manual2.PDF
  • Prodotto B
    • Manual3.PDF
  • Prodotto C
    • Manual4.PDF
    • Manual5.PDF
    • Manual6.PDF

Posso pubblicare questi dati e associare ancora Maual1.PDF al Prodotto A sul server? Dovrei evitare di provare a inviare tutti i dati associati stipati in 1 POST? Dovrei costringere il cliente a inviare solo 1 prodotto con i suoi manuali uno per uno, per evitare di incappare in lunghe richieste HTTP? Qualche consiglio in generale come dovrei fare questo?

In passato, costruivamo i sistemi di sincronizzazione tramite FTP per caricare tutti i documenti PDF e 1 file XML che conteneva tutti i dati e un riferimento al documento PDF associato. Un lavoro sul server dovrebbe cercare un file XML caricato ed elaborarlo quando trovato. Mentre funziona, mi sembra che questa sia una soluzione obsoleta e non un approccio veramente professionale.

Modifica: Forse non sono stato abbastanza chiaro nella mia descrizione, ma quello che sto cercando è un'interfaccia che costruirò in cima al mio sito web, che i miei clienti possono integrare nella loro software per inviare automaticamente i dati al mio sito Web ogni volta che apportano modifiche al loro sistema. Voglio costruire questa interfaccia con la tecnologia API WEB ASP.NET, ma non sono abbastanza esperto in quella tecnologia per determinare se è in grado di descrivere ciò che ho descritto sopra: accettare file e dati annidati che si riferiscono a quei file in 1 post. E che forse, una soluzione in cui il sistema del cliente carica automaticamente i file insieme a un file di indice tramite FTP sarebbe più adatto? O una tecnologia diversa?

    
posta Zeep 08.03.2017 - 13:40
fonte

2 risposte

2

Hai esaminato i cosiddetti "Content Management Systems" (CMS)?

Nel caso in cui si desideri eseguire il rollover del proprio sistema, tuttavia, un endpoint REST con un'applicazione web a singola pagina come frontend con un'interfaccia utente per la selezione dei file da caricare in esecuzione nel browser di un utente sembra un approccio ragionevole. Tanto più che queste sono tecnologie per le quali dovrebbe essere abbastanza facile trovare esperienze di qualcuno per implementare il sistema.

Un endpoint FTP aperto sembra spaventoso dal punto di vista della sicurezza. Se mai, vai per SCP o SFTP. L'implementazione e la gestione di un tale sistema sarebbe probabilmente più difficile rispetto all'approccio browser REST +, tuttavia, poiché i sistemi basati su SCP / SFTP / FTP sono molto meno comuni, così come le competenze e l'esperienza necessarie sul campo per una facile e veloce e solida implementazione.

    
risposta data 08.03.2017 - 14:41
fonte
-1

Se si presume che tutte le soluzioni siano pronte per una grande quantità di file, FTP è la soluzione migliore, anche se non è la novità. FTP è una buona soluzione per spostare molti file dal punto A al punto B in modo efficiente. Un'altra opzione potrebbe essere quella di consentire l'accesso VPN a un file server nel proprio ambiente e consentire ai client di caricare i documenti in questo modo. Il lato negativo di una soluzione FTP è che probabilmente richiederà l'intervento degli amministratori di rete dei client per aprire le connessioni ad esso, dove l'API Web può essere utilizzata su porte HTTP aperte.

Se nessuna delle due soluzioni esiste e devono essere sviluppate, la soluzione migliore è quella che continuerà a fornire valore ad altri client. Nella maggior parte dei casi una semplice API crud per manuali sarebbe sufficiente per i clienti con pochi manuali. Se hai molti clienti che hanno molti manuali e apportano modifiche di massa, sarebbe utile avere un sistema progettato in modo migliore per lavorare con i file alla rinfusa.

    
risposta data 08.03.2017 - 14:26
fonte

Leggi altre domande sui tag