Aktualności:

Nowy polski projekt BOINC - Universe@Home

Menu główne

Private Dropbox - prośba o testy

Zaczęty przez krzyszp, 07 Listopad 2012, 19:35

krzyszp

W którymś wątku przewinęła się kwestia narzędzia podobnego do Dropboxa, ale wykorzystująca własny serwer... Zacząłem coś takiego pisać:

[smg id=9746 type=full align=center caption="Syncro"]

http://rbsoftware.co.uk/customers/syncro/install.htm

Program funkcjonuje w ten sposób, że od momentu wybrania katalogu źródłowego (przycisk "Select Folder") oraz podaniu i zapisaniu danych ftp oraz naciśnięciu przycisku "Start Watching" zaczyna wysyłać wszystkie zapisane lub zmienione pliki w danym katalogu.

Program nie ma jeszcze opcji synchronizacji katalogu ftp, ale będzie miał wkrótce (funkcja auto-update jest wstawiona i program przed uruchomieniem sam ściągnie sobie nową wersję).
Jeśli komuś się przyda, to będę się cieszył ;)

Oczywiście info zwrotne z użytkowania mile widziane ;)

Uwaga 1. Program minimalizuje się do ikony.
Uwaga 2. Aby wyjść z programu całkowicie, należy użyć pewnego tajnego przycisku ;)

Fajne zegarki :)
Należę do drużyny BOINC@Poland
 Moja wizytówka

mimeq

User name musi byc w formie emaila?


krzyszp

Cytat: mimeq w 07 Listopad 2012, 19:45
User name musi byc w formie emaila?
Nie - podajesz nazwę użytkownika jaką masz do ftp.

Fajne zegarki :)
Należę do drużyny BOINC@Poland
 Moja wizytówka

Ufol

Czy ten serwer fizycznie istnieje osobno? Mam na myśli samą naturę tej wymiany, to takie kolejne torrentowanie, czy ftp? O współpracy z Nvda będę mógł coś napisać dopiero w poniedziałek, ponieważ wówczas uzyskam, na kilka godzin, dostęp do normalnego łącza. Poza tym, jak mi się komp wysypie, pomogą zaprzyjaźnieni informatycy. Co należy zrobić, aby podłączyć się do tego majdanu?

krzyszp

#4
Program ten służy (gdy zostanie ukończony) do synchronizacji wybranego katalogu z katalogiem FTP który posiadasz (np. konto na serwerze Twojego usługodawcy internetowego lub na Twoim własnym serwerze).

Ps. Mogę założyć konto ftp dla testów, a docelowo do trzymania dokumentów "tajnych" jeśli jest taka potrzeba.
Ps 2. Dodałem kasowanie plików z serwera (tzn, jeśli skasujesz plik lokalnie, to zostanie on również skasowany w zdalnym folderze).



Edit:
Napotkałem poważny problem przy pisaniu funkcji odpowiadającej za aktualizację plików (zarówno lokalnie jak i na ftp).

Otóż do pobrania daty modyfikacji pliku po stronie serwera ftp służy funkcja FTPResp.LastModified z System.Net.FtpWebRequest jednak działa on błędnie - zwraca mi datę z sygnaturą czasową zapisu na serwerze, a nie modyfikacji zawartości pliku.
Na chwilę obecną widzę trzy wyjścia:
1. Wykorzystać bazę danych do przechowywania dat plików.
2. Stworzyć plik logu na serwerze i tam przechowywać odpowiednie wartości.
3. Do każdego pliku stworzyć drugi (tekstowy) zawierający odpowiednie informacje.

Wszystkie rozwiązania mają wady i zalety:
Ad 1. Wadą rozwiązania jest konieczność posiadania odpowiedniego serwera, natomiast zaletą jest szybkość.
Ad 2. Nie wymaga serwera MySQL, ale jest znacznie bardziej skomplikowane i czasochłonne...
Ad 3. Rozwiązanie szybkie (w miarę) i wygodne, niestety podwaja liczbę plików na serwerze i przez to wydłuża czas operacji.

Najprawdopodobniej wybiorę rozwiązanie trzecie :)

Fajne zegarki :)
Należę do drużyny BOINC@Poland
 Moja wizytówka

krzyszp

Coś zaczyna działać ;)

Program już w miarę dobrze wykonuje swoją pracę, ale pod pewnymi warunkami:

1. Na razie nie synchronizuje katalogów. Wszystkie pliki muszą być w tym samym katalogu lokalnie i tak też są zapisywane na serwerze.
2. Na tę chwilę, program nie nadaje się jeszcze do wykorzystania na kilku komputerach naraz. Co prawda zapisuje na ftp plik zawierający dane kontrolne dla wszystkich plików, ale jeszcze nie zaimplementowałem aktualizacji katalogu lokalnego.

Obecnie największą bolączką jest prawidłowe odczytanie i porównanie wersji plików pomiędzy katalogiem lokalnym i zdalnym, mam nadzieję, że w najbliższych dniach dam radę to zrobić. Wraz z funkcją eksportu katalogów mogło by to być już narzędzie do normalnego korzystania.

Fajne zegarki :)
Należę do drużyny BOINC@Poland
 Moja wizytówka

Troll81

 :respect: i tak szacun

lukaszja

Krzyszp!
Szacun za pomysł i pracę!
Mam pytanie odnośnie bezpieczeństwa.
Jeśli dobrze rozumiem, dane, które synchronizujemy, idą sobie po necie do mojego ftp gdzieś na moim serwerze. Obiło mi się jednak o uszy, że ftp nie jest przesadnie bezpieczny (delikatnie mówiąc). Do tego jest kwestia samego przesyłu - dane są jakoś zabezpieczane/szyfrowane?
Być może nawet źle zadałem pytania ale generalnie chodzi mi o to, czy takie rozwiązanie jest bezpieczne.

apohawk

NJP*, ale co do tego problemu z datą modyfikacji, zrobiłeś sobie do tego jakąś bazę danych plikową, może sqlite i trzymasz na ftp? Nie wiem na ile to sensowne, ale taki pomysł przyszedł mi do głowy.

FTP jako storage może i jest wygodny, ale bezpieczeństwem nie grzeszy. Może chociaż SFTP?

*NJP - Nie Jestem Programistą
No good deed goes unpunished.

krzyszp

Co do SFTP, to muszę przyznać, że nie wiem jeszcze nic na temat implementacji w .NET, muszę poczytać.
Szyfrowanie plików jest pewną opcją, jeśli znajdę jakiegoś gotowca (funkcję) na sieci, to chętnie zaimplementuję, ale nie będę sam tworzył algorytmu gdyż mam za małą wiedzę w temacie.
Informacje kontrolne przechowuję w zwykłym pliku tekstowym, posiadającym tę samą nazwę co plik źródłowy plus rozszerzenie .---syncro, wykorzystanie sqlite chwilowo nie jest planowane ;)

Generalnie, program jest maksymalnie prosty, robię go w czasie wolnym  :(, nie nadaje się do przechowywania plików "tajnych" (przynajmniej w tej chwili), generalnie ma za zadanie wykonywać bieżący backup i jak już rozgryzę sprawę synchronizowania pomiędzy kilkoma komputerami (wraz z katalogami) to zabiorę się za sprawy bezpieczeństwa. Na obecnym etapie za bardzo by mi to komplikowało kod...
Całość jest (od strony kodu) bardzo modularna, więc po ukończeniu podstawowej funkcjonalności powinno być łatwo zadbać o sprawy bezpieczeństwa.

Fajne zegarki :)
Należę do drużyny BOINC@Poland
 Moja wizytówka

krzyszp

#10
Program trochę się zmienił, powinna działać synchronizacja plików pomiędzy komputerami (ale nie podkatalogów).
Doszedł box tekstowy ze ścieżką do katalogu gdzie znajduje się plik wykonywalny, program też wyświetla numer wersji (potrzebne do testów).
Naprawdę potrzebuję kogoś do przetestowanie, najlepiej na >= 2 komputerach, zaczynając (na obu) od pustych katalogów...

Fajne zegarki :)
Należę do drużyny BOINC@Poland
 Moja wizytówka

mordi

job well done :D kawał dobrej roboty kamracie  :parrrty: :parrrty: przydałby się jeszcze ten sftp ;) ale i tak jest bomba :)
Guard well the secret of steel...


krzyszp

Chyba jednak nie jest tak różowo - zauważyłem dwa błędy:

1. Duże pliki (pow. 70MB) często uploadują się z błędami, może to kwestia buforów, sprawdzę.
2. Kasowanie pliku lokalnie czasami powoduje jego ponowne pobranie z serwera.

Prosiłbym, aby ktoś to sprawdził u siebie i dał mi znać:
Ad 1. Poprzez podejrzenie pliku na serwerze ftp poprzez jakiegoś klienta.
Ad 2. Wystarczy kilka razy skopiować jakiś plik do synchronizowanego katalogu i go tam skasować. Błąd łatwo wychwycić.

Jeszcze jak by ktoś miał możliwość sprawdzić działanie programu na >2 kompach...

Fajne zegarki :)
Należę do drużyny BOINC@Poland
 Moja wizytówka

krzyszp

Jest może ktoś chętny, żeby udostępnić (czasowo) konto ftp z możliwością zapisu kilku GiB danych?
Utknąłem w pewnym miejscu i muszę sprawdzić, czy mam błąd z moim dostawcą, czy z programem (chodzi o synchronizację plików większych niż 70MB do np. 1GB)...

Fajne zegarki :)
Należę do drużyny BOINC@Poland
 Moja wizytówka

Cyfron

jakby był jakiś serwwer ftp dostępny to ja też bym mógł odrobinę pomóc przy tej synchronizacji

krzyszp

Program przeszedł kompletną przebudowę...
Komunikuje się obecnie poprzez SFTP (bezpieczeństwo) używając do tego WinSCP (darmowy program do pobrania ze strony http://winscp.net/eng/download.php), prawdopodobnie wystarczy mu sam plik WinSCP.exe z pakietu Portable (nie mam jak sprawdzić - mógłby ktoś?).
Być może będzie wymagał po uruchomieniu instalacji/rejestracji pliku WinSCP.dll, ale nie sądzę (do pobranie z pakietu http://winscp.net/download/winscp511automation.zip).

UWAGA - konieczny jest serwer obsługujący SFTP!!! Bez niego nie będzie działać!!!

Po pierwszym uruchomieniu należy podać:

Ścieżkę do katalogu, który ma być synchronizowany
Ścieżkę do katalogu z plikiem WinSCP.exe
Adres serwera
Nazwę użytkownika do serwera
Hasło do serwera
Katalog na serwerze - program wymaga utworzenia tego katalogu wcześniej, nazwa katalogu musi być zakończona slashem.
Klucz SSH - można go otrzymać np. łącząc się poprzez WinSCP, niestety nie udało mi się jeszcze opanować automatycznego pobierania klucza - może w przyszłej wersji...

Po wszystkim naciskamy Save Credentials oraz Start Watching - katalogi zaczną się synchronizować :)

No, i jeszcze jak to wygląda:

[smg id=9747 type=preview align=center caption="FileUploader"]

Znane problemy:

Dodanie/skasowanie naraz bardzo wielu plików może (ale nie musi) spowodować "pogubienie" się programu - wymaga testów - będę wdzięczny za informacje.

Fajne zegarki :)
Należę do drużyny BOINC@Poland
 Moja wizytówka

Troll81


Tomasz R. Gwiazda

http://antyweb.pl/synchronizacja-plikow-pomiedzy-komputerami-za-pomoca-p2p-aerofs-mamy-juz-zaproszenia/

krzyszp

Cytat: Tomasz R. Gwiazda w 12 Listopad 2012, 10:33
http://antyweb.pl/synchronizacja-plikow-pomiedzy-komputerami-za-pomoca-p2p-aerofs-mamy-juz-zaproszenia/
No i moja robota idzie na marne :)

Fajne zegarki :)
Należę do drużyny BOINC@Poland
 Moja wizytówka

mordi

ee tam ja i tak podziwiam :) :parrrty:
Guard well the secret of steel...


krzyszp

Cytat: elessar25 w 12 Listopad 2012, 14:19
ee tam ja i tak podziwiam :) :parrrty:
Mnie nie o podziw chodziło ;)

Natomiast faktem jest, że usunięcie pewnych błędów będzie bardzo skomplikowane i nie jestem pewien, czy jest sens to robić...

Np. Skopiowanie pojedynczego pliku do katalogu wywołuje w windows min. 3 zdarzenia (create, modify, modify), zmiana zawartości 2 zdarzenia (modify, modify) albo jedno (tylko modify), przez to musiałbym np. tworzyć tablice zmian plików, aby sensownie tym operować...
Takich błędów jest niestety kilka i obecnie sam się zastanawiam, czy jest sens kontynuować i robić z programu kobyłę... Teraz już wiem, dlaczego Dropbox zżera tyle RAM'u ;)

Fajne zegarki :)
Należę do drużyny BOINC@Poland
 Moja wizytówka

mordi

fakt, faktem jeśli tyle z tym kopania to może rzeczywiście należy zastanowić się nad ekonomią wysiłku ;) jeden z profesorów zwykł mawiać "nie ma sensu wyważać już otwartych drzwi" :D
P.S. wiem, że nie o podziw chodziło ale dobrą robotę należy cenić ;)
Guard well the secret of steel...


Tomasz R. Gwiazda

albo takie cos ?

http://sparkleshare.org/

krzyszp

#23
Sprawdzę to, ale czy ma proste narzędzie do Windows?

Edit:
Zainstalowałem na serwerze repozytorium projektu, stworzyłem projekt, zainstalowałem klienta na oknach... i dupa.
1. Klient utworzył sobie domyślny folder w C:\Users\krzyszp\SparkleShare - a celowo wszystkie dokumenty mam na innym dysku...
2. Nie można tego zmienić.
3. Jak dodać projekt do klienta???

To narzędzie nie nadaje się na razie... dla mnie.

Fajne zegarki :)
Należę do drużyny BOINC@Poland
 Moja wizytówka

EDU Enthusiast

a wiec tak, nie wiem czy nie zapomnieliscie ze sam windows ma opcje synchronizacji folderow etc...  %)
Briefcase :3


wystarczy jakis network share i wlozyc tam to co chcesz; i juz bedzie updated;


lepiej znajdzcie sposob jak zrobic network share driver z sftp :)  - bez softu

mordi

the mystery of "the Briefcase" has been finally revealed! :D szczerze mówiąc zapomniałem, że to w ogóle istnieje...ostatni raz pamiętam aktówkę z office'a 97 :)
Guard well the secret of steel...


krzyszp

Cytat: EDU Enthusiast w 13 Listopad 2012, 22:10
a wiec tak, nie wiem czy nie zapomnieliscie ze sam windows ma opcje synchronizacji folderow etc...  %)
No i co z tym dalej, bo nie mam pojęcia  :shame:

Fajne zegarki :)
Należę do drużyny BOINC@Poland
 Moja wizytówka

EDU Enthusiast

nic dalej, twozysz teczke i on synchronizuje zawartosc z folderem ktory wzucisz do niej - folder zostaje tam gdzie byl.

Mozna z networku resource tez tam pakowac z tego co rozumiem, http i ftp. Nie walczylem jeszcze z sftp ale jesli jest plugin do explorera by chodzil sftp to pewnie tez bedzie chodzilo...

Tomasz R. Gwiazda

tia, ale to ma dzialac przez siec internet a nie lokalna...
i zapewne nie przez adresy publiczne tylko prywatne