Zadanie #1
openPobranie piosenek na androida z danego katalogu na ScyllaOne
0%
Description
Chce z androida połączyć się poprzez ssh z serwerem i pobrać wszystkie pliki z danego folderu do folderu Music na urzadzeniu.
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.
Updated by Dawid Szustak about 2 years ago
- Assignee changed from Redmine Admin to Dawid Szustak