Fórum Root.cz
Hlavní témata => Server => Téma založeno: Zdenda 30. 12. 2017, 11:59:55
-
Chtěl bych mít na serveru možnost anonymního nahrávání souborů. Abych si mohl odkudkoliv bez přihlašování nahrát soubor k sobě třeba z cizího počítače. Nechci žádné složité řešení jako OwnCloud nebo tak. Řešili jste to?
-
Co je to "anonymni nahravani souboru"?
-
Pak pošli adresu, to by se mohlo hodit ;D
-
Myslím to tak, že bych mohl komukoliv říct adresu, tam by bylo tlačítko Procházet a Odeslat. On by mi tam mohl na server nahrát soubor. Samozřejmě by pak k němu neměl přístup, pak bych si ten soubor přes SCP mohl stáhnout jen já.
Anonymní by to bylo, protože by tam nebyly žádné uživatelské účty. Kdo by znal adresu, mohl by mi poslat soubory.
-
Pokud to chcete na vlastním serveru, zprovozněte si tam FTP nebo WebDAV. Pokud to chcete jako službu, umí to různá cloudová úložiště, např. Dropbox.
-
to zni hodne bezpecne :)
no o FTP jsi neuvazoval? Wokna snad maji (urcite mely) primou podporu, takze drag & drop v tom jejich Exploreru.
-
Obyčejný webový formulář s chlívkem pro upload souboru. To je to, co se tu řeší?
-
Myslím to tak, že bych mohl komukoliv říct adresu, tam by bylo tlačítko Procházet a Odeslat.
Tzn. jednoduchý HTML formulář + na serveru skript/servlet, který přijme HTTP POST a obsah uloží do souboru na disk. Jen si dej pozor na zabezpečení – aby nešlo nahrávat soubory mimo povolený adresář nebo přepisovat dříve nahrané soubory. Ta serverová část by měla běžet pod vlastním uživatelem, který nemůže nikam jinam zapisovat.
-
https://transfer.sh (https://transfer.sh)
-
https://transfer.sh (https://transfer.sh)
Na jednu stranu je super, že už to někdo napsal a stačí použít hotové řešení. Na druhou stranu, když si to budu chtít rozjet u sebe, tak si stáhnu zdrojáky a vidím tam:
$ cloc-sql.sh transfer.sh/
╭────────────────────┬─────────┬───────────┬───────────┬────────┬────────┬──────────────────────────────────────────────────────────────────────────────────╮
│ jazyk │ souborů │ prázdných │ komentářů │ kódu │ celkem │ celkem_graf │
├────────────────────┼─────────┼───────────┼───────────┼────────┼────────┼──────────────────────────────────────────────────────────────────────────────────┤
│ Go │ 1254 │ 38474 │ 33520 │ 328072 │ 400066 │ ████████████████████████████████████████████████████████████████████████████████ │
│ Assembly │ 46 │ 855 │ 648 │ 7729 │ 9232 │ ██░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ │
│ HTML │ 56 │ 1158 │ 37 │ 4154 │ 5349 │ █░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ │
│ XML │ 3 │ 228 │ 13 │ 4793 │ 5034 │ █░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ │
│ Bourne Shell │ 11 │ 128 │ 548 │ 868 │ 1544 │ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ │
│ Perl │ 10 │ 178 │ 180 │ 1170 │ 1528 │ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ │
│ CSS │ 6 │ 31 │ 20 │ 1054 │ 1105 │ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ │
│ Javascript │ 7 │ 52 │ 112 │ 579 │ 743 │ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ │
│ YAML │ 19 │ 45 │ 6 │ 272 │ 323 │ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ │
│ C │ 3 │ 51 │ 22 │ 189 │ 262 │ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ │
│ make │ 5 │ 17 │ 2 │ 46 │ 65 │ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ │
│ Bourne Again Shell │ 1 │ 3 │ 0 │ 11 │ 14 │ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ │
│ C/C++ Header │ 1 │ 2 │ 5 │ 1 │ 8 │ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ │
│ celkem │ 1422 │ 41222 │ 35113 │ 348938 │ 425273 │ │
╰────────────────────┴─────────┴───────────┴───────────┴────────┴────────┴──────────────────────────────────────────────────────────────────────────────────╯
Record count: 14
Přes 400 000 řádků kódu? To jako vážně, to si mám pustit u sebe? To mi přijde jako pořádné WTF? Na takovouhle aplikaci? Vždyť je to víc než třeba jádro bankovního systému nebo internetové bankovnictví.
Je fakt, že adresář server má jen cca 2 000 řádků, což už je celkem smysluplné číslo. Ale ono to závisí na tom zbytku a zjevně to nejde samostatně přeložit bez těch 400 000 řádků kódů a možná ještě nějakých dalších závislostí.
Archivovat si zdrojáky použitých knihoven je dozajista správné, ale rozhodně nepatří do stejného gitu jako kód aplikace a taky by měly být spravované přes nějaký systém, měly by se používat společné případně dodané uživatelem.
-
tenhle repositář obsahuje i svoje závislosti, viz např. https://github.com/dutchcoders/transfer.sh/tree/master/vendor/golang.org/x , to je stejné jak když si stáhneš zdrojáky stdlib a tvrdíš, že přece u sebe stovky tisíc řádků nebudeš spouštět.
Samotný kód téhle knihovny je velice krátký, jen obsahuje řadu go závislostí, které se běžně stahují až při kompilaci, tady je máš rovnou. U jiných jazyků to je obdobné, jen prostě už dané knihovny máš předkompilované a slinkované, takže to nevidíš.