Permalänk
Medlem

C#, ftp eller vpn?

Hejsan.

Jag håller på med ett webbprojekt där jag visar upp produkter som man kan köpa. webbsidan hämtar alla produkter ifrån en Mysql databas och en mapp där bilder lagras.

Nu är det så att jag har gjort ett C# program där du kan lägga till produkter i mysql databasen.
Det han då gör är att lägga till Namn, Pris, Beskrivning och en bild.

Dessa 4 läggs in som VARCHAR i databasen, det jag sedan gör är att jag flyttar den valda bilden till min mapp på servern där PHP-koden letar efter bildens namn.
Just för att PHP-koden ska hitta bilden som den letar efter.

Då jag kör detta Program på min server så slipper jag använda någon typ av anslutning till servern. Förutom mysql anslutningen men den har jag klar för mig.

problemet jag stöter på är när jag vill att detta program även skall fungera utanför servern. Om jag är utanför servern så måste jag på något vis komma åt mappen där bilderna skall lagras, annars så kommer produkten att visas utan bild då den inte finns i mappen för bilderna.

Ska man kanske skriva om så att programmet skall ansluta till en ftp där det endast finns en mapp och som man då där lägger in alla bilderna?

Eller ska man försöka skapa någon typ av vpn anslutning och kunna välja den vägen vart bilden skall läggas?

Jag är lite mer inne på FTP lösningen, men jag tänker lite kring säkerheten där då det känns enklare att "hacka" sig in på en FTP än en VPN?

Man kan även skriva att bilden skall lagras i databasen som BLOB men frågan är vad som blir bäst?

Permalänk
Inaktiv

Lagra alla data, inklusive bilder, i databasen. Det är var den är till för.

Permalänk
Medlem

Om du vill göra minimalt med jobb, givet din nuvarande setup, mappa upp en nätverksenhet för FTP-katalogen på din server på den dator där C#-programmet kör och låt programmet skriva bilden till den mappade enheten.

FTP över Internet är dock inget jag rekommenderar ur säkerhetssynpunkt. WebDAV kan vara ett alternativ. Jag gissar på att du kör Windows på alla inblandade maskiner, annars finns det smartare och säkrare sätt.

Permalänk
Medlem

Personligen skulle jag göra som @KAD säger, mappa som en nätverksdisk och skriv till denna. Alternativet att spara bilderna i databasen finns också men skulle nog i så fall haft en dedikerad maskin med en separat databas för detta i så fall.

WebDAV skulle jag inte rekommendera, säkerhetshål som inte täppts till på 5+ år och desutom väldigt krävande rent konfigurerings mässigt där man kan göra många fel som leder till b.la. öppna dörrar

Permalänk
Medlem

Nu vet jag inte hur sidan ser ut men använder du PHP och har någon form av authentisering kan du istället för att använda c# skriva ett formulär för att lägga till en produkt. Det har många fördelar, den största är att du kan lägga till produkter oavsett var du befinner dig utan något behov av en programvara.

Om du vill fortsätta använda c# kan du göra en kombination med en php-sidan som tar post-parametrar med de olika värdena du skickar från ditt c# program. Sedan skriver du värdena till databasen från php-sidan och spar bilden på lämpligt ställe.

Missförstod frågan
Visa signatur

There are 10 types of people in the world: Those who understand binary, and those who don't...

Asus Maximus VIII Hero | i7-6700K | ASUS GeForce GTX1070 Strix 8GB | G.Skill F4-2133C15Q-32GRK |

Permalänk
Medlem
Skrivet av anon81912:

Lagra alla data, inklusive bilder, i databasen. Det är var den är till för.

Jag väljer att respektfullt inte hålla med. Men självklart finns det scenarion där det är bra. För just detta fall så rekommenderar jag att man sparar namn/path i databasen och filerna i filsystemet.

Alla för- och nackdelar är lite för många och offtopic för att tas upp här.

Om det är ett webbprojekt du jobbar med @el98143, varför inte bara skaffa en domän/fast ip/dyndns till servern och jobba med det som vilken webb som helst? Ladda upp bilder/filer, visa/ladda ner bilder/filer etc?

Visa signatur

ηλί, ηλί, λαμά σαβαχθανί!?

Permalänk
Medlem

@KAD
Ja det hade varit en enkel lösning, men som du säger kanske inte den säkraste. Vad är då skillnaden mellan Webdav och FTP ?
en snabb googling säger mig endast att Webdav använder sig utav vissa portar som inte spärras av brandväggen. Antar att det är bra att använda portar som inte den potentiella attackeraren vet om att det körs trafik på?

@gonace
Jag har en HP Microserver GEN8 som jag kör all min såkallade webbaktivitet på. Kan det bli tungrott för databasen att både behöva lagra hela bilden istället för filnamnet, är det därför du tänker att man skall ha en egen dedikerad maskin för att utföra detta om man väljer att spara bilderna i databasen?

@WarWolf.667
Ja det hade varit en optimal lösning, men mina kunskaper gällande säkerheten på detta område är fortfarande nytt. Visst kan man skapa en sida där man måste ha inloggningsuppgifter som jag sätter i min PHP-kod, men det känns ändå som att det finns risk för att bli hackad, iallafall om jag skall göra applikationen. Men i framtiden så är detta alternativ det absolut bästa.

@anon81912 @Leedow
Ja det hade varit simpelt att lagra allt i databasen, men är det inte så att prestandan för databasne försämras mer om man lagrar filer som är väldigt stora?
Vad är egentligen för och nackdelarna med att spara en sträng eller en bild i databasen?
Det enda jag kan se är att databasen får jobba hårdare om jag lagrar bilden i.
Men det blir betydligt mer hand-påläggning om man skall administrera en mapp där bilderna lagras.

Permalänk
Inaktiv
Skrivet av el98143:

@Killbom @Leedow
Ja det hade varit simpelt att lagra allt i databasen, men är det inte så att prestandan för databasne försämras mer om man lagrar filer som är väldigt stora?

Nej, du bör ha index där du bryr dig om prestandan.

Däremot kanske jag förenklade det lite när jag sa "spara det i databasen". Då syftade jag på en BLOB storage eller dylikt https://azure.microsoft.com/sv-se/services/storage/blobs/

Ska du inte använda riktiga databaser och bara göra en låtsas lösning kan du väl göra hur du vill, inklusive bilder i databasen.