Automatisk delning av länk från filserver

C, C++, Pascal, Assembly, Raspberry, Java, Matlab, Python, BASIC, SQL, PHP, etc.
ojjan
Inlägg: 359
Blev medlem: 6 mars 2007, 22:06:40
Ort: Malmö

Automatisk delning av länk från filserver

Inlägg av ojjan »

Hej,

Detta borde vara enkelt, men hittar inte rätt i Google djungeln.

Bakgrund:
Jag har några olika program som får nya releaser lite då och då.
Oftast så laddar kunden ner den senaste versionen och uppdaterar, vilket vi rekommenderar.
Men ibland av olika anledningar så vill de nyttja en äldre version, då de kanske inte behöver uppdatera.

Nu:
Kunden ringer/mailar och ber om den version de behöver, jag går då in och skapar en temporär länk till denna fil och skickar över länken.
Låter enkelt och snabbt, vilket det också är, men vill automatisera denna process för att slippa avbrotten.

Tanke:
Jag vill veta om någon behöver en "arkivfil" av olika anledningar.
Detta utesluter alltså att bara publicerad filerna.
Jag vill istället att man i ett ytterst lätt formulär skall välja:
- Typ av program (drop-down)
- Release (drop-down)
- Version (drop-down)
- Fyll i mail dit länken skall skickas.

Tanken är att map strukturen kommer följa samma schema och att filnamnet skall vara identiskt med Version.

När man trycker "skicka" skall då filservern:
- Generera en länk som är giltig i 1 dag. (Inte så noga med tiden)
- Skicka ett mail till inskriven adress och min support adress. (Då skapas det en ticket som håller koll på vem och när m.m)
- Mailet ska såklart följa en "mall" som man kan skapa.

Filservern finns ej just nu. Tanken är någon Nas/nuc/rpi eller liknande.
Formuläret kommer bäddas in på min dokuwiki sida, dvs bakom inloggning. (Inte lokalt hostat)
Programmen som delas är gratis och inte speciellt hemliga, men de ska inte vara helt publika.

Det jag söker är alltså något operativsystem/mjukvara som kan generera dessa länkar på någon form av anrop från websidan. Jag uppdaterar rätt ofta med nya versioner så det skall inte krävas massa handpåläggning för att lägga till nya filer i formuläret.
Helst skall formuläret själv hämta filnamnen som finns på servern typ 1gång dygnet eller på kommando.
Dvs:
Mapp namnen som finns i "roten" visas i första drop-down.
Mapp namnen som finns 1 steg ner visas i andra drop-down.
Mapp namnen som finns 2 steg ner visas i tredje drop-down.
Filnamnen som finns i denna mapp visas i sida drop-down.

Hoppas detta "makes sense" och att någon kan tipsa om en väg framåt.

Mvh
Användarvisningsbild
Micke_s
EF Sponsor
Inlägg: 6741
Blev medlem: 15 december 2005, 21:31:34
Ort: Malmö

Re: Automatisk delning av länk från filserver

Inlägg av Micke_s »

Inget färdigt program dock. Men låter som något valfritt programmeringsspråk på en servern som webbsidan körs på.

Exempel så kan du använda Python, C# eller dinosaurie PHP. Går även köra javascript via NODE.JS
ojjan
Inlägg: 359
Blev medlem: 6 mars 2007, 22:06:40
Ort: Malmö

Re: Automatisk delning av länk från filserver

Inlägg av ojjan »

Tja,

Jag förväntar mig att jag måste skriva en del kod själv. Vilket kan bli lärorikt. :)

Det som känns svårast för mig är att skapa dessa temporära länkar.
Men eftersom funktionen redan finns i många Nas mjukvaror, kanske man jag ska köra dessa mjukvaror och sedan skriva ett script som utför den inbyggda funktionen..
Istället för att ha filerna på en ren Linux dist..

Tanken är alltså att ha hårdvaran lokalt då det kommer kräva en del HDD utrymme. Så jag vill inte lägga själva filerna på dokuwiki sidan eller vår vanliga hemsida.

Så fortsätt med brainstorming förslag! :)
Användarvisningsbild
Micke_s
EF Sponsor
Inlägg: 6741
Blev medlem: 15 december 2005, 21:31:34
Ort: Malmö

Re: Automatisk delning av länk från filserver

Inlägg av Micke_s »

Jag tror du skulle kunna köra en vanlig linux burk med webserver. Webservern behöver dock inte kunna köra några script, vilket kanske är en fördel rent säkerhetsmässigt.
Lägg filerna på en nivå som inte webservern vanligtvis kommer åt(behöver dock läsrättigheter).

Ett script kopplar upp sig mot ett script på dokuwiki och ser om det finns något nytt att göra. (du kan köra https GET request med en hemlig nyckel i princip, vanligtvist kallad AUTH token)
När scriptet har skapat en ny länk så säger den till scriptet hos dokuwiki att länken är skapad -> scriptet i dokuwiki genererar mailet.

Scriptet i linux burken kan även gå igenom filerna som finns att generera och anropa scriptet på dokuwiki för att uppdatera informationen.

Om det finns så så genererar du symboliska länkar till rätt fil. Se till att du inte kan lista filer på servern.
Ett övervakningscript kan kolla ålder på de symboliska länkarna och ta bort de som är skapade för mer än 1 timme sedan.

Rätt NAS så kan du både ha webservern och köra script på NAS.en.
Användarvisningsbild
Micke_s
EF Sponsor
Inlägg: 6741
Blev medlem: 15 december 2005, 21:31:34
Ort: Malmö

Re: Automatisk delning av länk från filserver

Inlägg av Micke_s »

Finns något som heter secure link i NGINX som kan vara värt att kolla
https://docs.unified-streaming.com/tuto ... -link.html
Användarvisningsbild
Micke_s
EF Sponsor
Inlägg: 6741
Blev medlem: 15 december 2005, 21:31:34
Ort: Malmö

Re: Automatisk delning av länk från filserver

Inlägg av Micke_s »

Bättre dokumentation om du inte vill betala för en nginx variant
http://nginx.org/en/docs/http/ngx_http_ ... odule.html
Användarvisningsbild
Micke_s
EF Sponsor
Inlägg: 6741
Blev medlem: 15 december 2005, 21:31:34
Ort: Malmö

Re: Automatisk delning av länk från filserver

Inlägg av Micke_s »

Har testat lite snabbt. Nginx fixar det. Kan inte säga med 100% att min konfigfil är helt korrekt. Första gången jag leker med nginx.
secret får du sätta till något annat dock..

Kod: Markera allt

server {
        listen 80 default_server;
        listen [::]:80 default_server;

        root    /home/www;

        location /s/ {

                secure_link $arg_md5,$arg_expires;
                secure_link_md5 "$secure_link_expires$uri secret";

                if ($secure_link = "") {
                        return 403;
                }

                if ($secure_link = "0") {
                        return 410;
                }

                ## If everything is ok $secure_link is 1. This needs to be here otherwise you'll get a 404.
                #rewrite ^/s/(.*)$ /s/$1 break;
        }




        # You may need this to prevent return 404 recursion.
        location = /404.html {
                internal;
        }
}
Kommando för skapa md5 sträng under unix. Tiden är unix timestamp
echo -n '2147483647/s/test.txt secret' | openssl md5 -binary | openssl base64 | tr +/ -_ | tr -d =

URL blir något i stil med https://hostname/s/test.txt?md5=kKDl6O4 ... 2147483647
ojjan
Inlägg: 359
Blev medlem: 6 mars 2007, 22:06:40
Ort: Malmö

Re: Automatisk delning av länk från filserver

Inlägg av ojjan »

Ojoj,

TACK!

Ska labbar ikväll med detta. Hade inte förväntat mig hela denna vägledning!
Användarvisningsbild
Micke_s
EF Sponsor
Inlägg: 6741
Blev medlem: 15 december 2005, 21:31:34
Ort: Malmö

Re: Automatisk delning av länk från filserver

Inlägg av Micke_s »

Fastnade för problemet om man säger så :P


I din dokuwiki så behöver du titta på dessa funktioner. time så lägger du på 3600 för en timme.

https://www.php.net/manual/en/function.mail.php
https://www.php.net/manual/en/function.md5.php
https://www.php.net/manual/en/function.time.php

Du kanske vill lagra request för nerladdning i någon slags textfil och köra ett cron job för förhindra att skicka iväg 1000-tals mail.
Typ cronjob varje minut och max 10 mail eller något sådant.

Finns även tjänster som sendgrid.com som antagligen hade fungerat för sända mailet.
ojjan
Inlägg: 359
Blev medlem: 6 mars 2007, 22:06:40
Ort: Malmö

Re: Automatisk delning av länk från filserver

Inlägg av ojjan »

Haha, jag har funderat på detta ett tag, men har inte fått rätt på det i huvudet.

För mail i dokuwiki så använder jag https://www.dokuwiki.org/plugin:smtp

Så mail delen borde lösa sig.

Det är som sagt skapandet av temporära länkar och kommunikation mellan websidan/servern och fil servern som har varit min stoppkloss.

Men ska se om jag inte kan försöka med en PoC genom att ta en gammal rpi som fil server.

Återigen tack!
Användarvisningsbild
Micke_s
EF Sponsor
Inlägg: 6741
Blev medlem: 15 december 2005, 21:31:34
Ort: Malmö

Re: Automatisk delning av länk från filserver

Inlägg av Micke_s »

Fördelen med detta är att du inte behöver kommunikation mellan "wiki" servern och filservern.

Dock så måste du trycka in informationen vad som kan genererar på något sätt i "wiki" servern. Manuellt eller göra något script.
Är det inte så många filer så kanske textfiler med informationen på "wiki" servern duger.

Typ en textfil per nerladdningsbar grupp och 1 rad i filen på tillgängliga versioner.

Edit: Är det nu login på wiki:n så kanske det räcker med ett mail till dig och generera länken direkt för kunden?
ojjan
Inlägg: 359
Blev medlem: 6 mars 2007, 22:06:40
Ort: Malmö

Re: Automatisk delning av länk från filserver

Inlägg av ojjan »

Hej,

Det är login för att komma in på wikin.
Wikin är i utbildningssyfte för tekniker, och tänker att det passar bra med arkiv och beta filer där.
Senaste versionerna finns alltid på vår vanliga hemsida.

Vill slippa det manuella arbetet helt, så att jag får ett mail och behöver genera länken hjälper mig inte. Dock vill jag få info om vem som har laddat ner länken så jag kan kontakta personen och kontrollera om vi bör uppdatera tex.

I dagsläget så har vi de flesta filer i "molnet" där vi manuellt kan skapa dessa länkar på förfrågan. Vi har inte alla filer där pga att det är onödigt att betala för plats för 10år gamla filer.
Dock så är det någon gång varje vecka som jag får förfrågan om att generera en länk.
Händer att tekniker behöver dessa filer på obekväm arbetstid då de är på någon service och då är det smidigt att de själva kan ladda ner det.

Så tanken är:
Formulär på wikin.
Fälten i formuläret är dropdowns som evt tas från fil/mapp namnen på filservern. Detta tänker jag att filservern generar en fil med dessa namn, som webbservern hämtar och använder som uppslag till formuläret. Typ 1gång per dygn.
Trycker på skicka och då skickas en request till filservern med namnet på filen.
Filservern letar upp filnamnet och genererar en länk som skickas antingen till wikin som skickar mailet eller så skickar filservern mailet direkt.

Obs, detta är skrivit av mig utan större web/script kunskaper. Så detta är ett läroprojekt. :roll:
ojjan
Inlägg: 359
Blev medlem: 6 mars 2007, 22:06:40
Ort: Malmö

Re: Automatisk delning av länk från filserver

Inlägg av ojjan »

Redan bakslag..
De rpi som jag hade hemma så startade ej den ena, och den andra försöker uppdatera sig, men tar en jäkla tid.

Detta hade varit lätt löst om jag hade min sd korts läsare hemma, men ikke, den är på jobb.

Så kvällen går till att designa upp idéen och börja i dokuwiki sidan med formuläret.

Go kväll.
ojjan
Inlägg: 359
Blev medlem: 6 mars 2007, 22:06:40
Ort: Malmö

Re: Automatisk delning av länk från filserver

Inlägg av ojjan »

Hej,

Jag har börjat med basic sakerna och ska snart ge mig på snacket mellan webben och filservern.

Formuläret är färdigt så pass att man kan välja vad man vill ha och när man trycker "skicka" så skapas en textfil med all info.

Formuläret i säg är också en textfil där man skulle kunna ändra värdena i drop-down om man skriver de på rätt ställe.

Webbdelen ligger hos Loopia, och kör apatch och PHP.

Filservern skall ligga lokalt på någon form av hårdvara typ Linux med ett gäng hårddiskar.
Syften med denna server är inte att agera backup, utan endast att kunna dela ut filer.

Ska alltså nu läsa in mig på Micke_s fantastiskt länkar m.m. för att få till hämtning/skicka filer från web->filservern samt filservern->generera länk och skicka mailet.

(Ursäkta bloggposten)

:)
Användarvisningsbild
Micke_s
EF Sponsor
Inlägg: 6741
Blev medlem: 15 december 2005, 21:31:34
Ort: Malmö

Re: Automatisk delning av länk från filserver

Inlägg av Micke_s »

Många små steg.

Generera länkar behöver du bara göra på dokuwiki:n. Den måste bara veta hur md5 ska skapas och ip nummret/domännamn på filerservern(båda kan vara hårdkodade).

Koppling från filservern till wikin behöver du bara om du vill automatisera uppdateringen av formulärdatan på wiki:n.
Skriv svar