Swift library for accessing Synology NAS and use DiskStation APIs.
Tools :
- Resolve NAS host/ip base on QuickConnectId
- List available APIs
- Login with encryption
With Cocoapods:
pod 'SynologySwift'
With Carthage:
github "Thomaslegravier/SynologySwift"
Resolve DS reachable interface for a specific QuickConnectId :
SynologySwift.resolveURL(quickConnectId: "your-quick-id") { (result) in
switch result {
case .success(let data):
let dsPort = data.port
let dsHost = data.host
case .failure(let error): break
}
}
List available APIs on your DS :
SynologySwift.resolveAvailableAPIs { (result) in
switch result {
case .success(let data):
for service in data.apiList! {
let serviceName = service.key // Exemple : SYNO.API.Auth
let servicePath = service.value.path // Exemple : auth.cgi
}
case .failure(let error): break
}
}
Auth connection with encryption :
SynologySwift.login(quickConnectid: "your-quick-id", login: "login", password: "password") { (result) in
switch result {
case .success(let data):
let accountName = data.account // Account name
let sessionId = data.sid // Sid param for futher connected calls
case .failure(let error): break
}
}
Login helper:
- Resolve automatically your DS host base on the quickConnectId
- List available APIs on your DS
- Fetch encryption details
- Login with your account informations.
Your login and password are encrypted and not stored.
- Thanks to @Frizlab fro RSA/AES encryption part.
- Thanks to @btnguyen2k for swift-rsautils implementation