Project

General

Profile

Actions

Zadanie #1

open

Pobranie piosenek na androida z danego katalogu na ScyllaOne

Added by Redmine Admin about 2 years ago. Updated about 2 years ago.

Status:
Nowy
Priority:
Normalny
Start date:
10/28/2023
Due date:
% Done:

0%

Estimated time:

Description

Chce z androida połączyć się poprzez ssh z serwerem i pobrać wszystkie pliki z danego folderu do folderu Music na urzadzeniu.

Actions #1

Updated by Redmine Admin about 2 years ago

Tak, możesz również osiągnąć to samo w aplikacji mobilnej napisanej w NativeScript, wykorzystując JavaScript lub TypeScript. Musisz użyć odpowiednich modułów lub wtyczek. Oto ogólny przewodnik, jak to zrobić:

1. Zainstaluj wtyczkę do obsługi SSH:
Wykorzystaj dostępne wtyczki do obsługi SSH w projektach NativeScript. Jednym z popularnych wyborów jest wtyczka `nativescript-ssh2`. Możesz ją zainstalować za pomocą narzędzia `tns`.

tns plugin add nativescript-ssh2

2. Utwórz kod do połączenia się z serwerem SSH i pobierania plików. Oto przykład:


const SSH2 = require("nativescript-ssh2");

function downloadFiles() {
    const ssh = new SSH2();

    // Ustaw dane do połączenia z serwerem SSH
    const sshConfig = {
        host: "adresSerweraSSH",
        username: "twojaNazwaUzytkownika",
        password: "twojeHaslo",
        port: 22,
    };

    ssh.connect(sshConfig).then(() => {
        // Ustal ścieżki dostępu na serwerze i urządzeniu
        const remoteFolder = "/sciezka/do/twojego/folderu/na/serwerze";
        const localFolder = android.os.Environment.getExternalStoragePublicDirectory(
            android.os.Environment.DIRECTORY_MUSIC
        ).toString();

        ssh.sftp()
            .then(sftp => {
                // Pobierz pliki z serwera do lokalnego folderu
                return sftp.list(remoteFolder).then(files => {
                    return Promise.all(
                        files
                            .filter(file => !file.isDirectory())
                            .map(file => {
                                const remoteFilePath = remoteFolder + "/" + file.filename;
                                const localFilePath = localFolder + "/" + file.filename;
                                return sftp.get(remoteFilePath, localFilePath);
                            })
                    );
                });
            })
            .then(() => {
                console.log("Pliki pobrane pomyślnie");
                ssh.disconnect();
            })
            .catch(error => {
                console.error("Błąd podczas pobierania plików: " + error);
                ssh.disconnect();
            });
    });
}

Ten kod używa wtyczki `nativescript-ssh2` do nawiązania połączenia z serwerem SSH i pobrania plików z określonego folderu na urządzenie Android. Pamiętaj, że musisz dostosować dane uwierzytelniające i ścieżki dostępu do swoich potrzeb.

Actions #2

Updated by Dawid Szustak about 2 years ago

  • Assignee changed from Redmine Admin to Dawid Szustak
Actions

Also available in: Atom PDF