Name: TOSMBClient
Owner: Synappz Medical Apps
Description: An Objective-C binding around the libDSM SMB client library.
Forked from: TimOliver/TOSMBClient
Created: 2018-01-15 08:55:52.0
Updated: 2018-01-15 08:55:54.0
Pushed: 2018-01-15 11:43:19.0
Size: 6898
Language: Objective-C
GitHub Committers
User | Most Recent Commit | # Commits |
---|---|---|
Tim Oliver | 2018-01-05 04:07:58.0 | 93 |
Natalia | 2016-08-22 13:37:02.0 | 7 |
wojtkow | 2016-05-24 17:12:28.0 | 1 |
rajderks | 2017-12-11 11:06:24.0 | 1 |
Other Committers
User | Most Recent Commit | # Commits | |
---|---|---|---|
Roy Derks | 2018-01-15 11:43:13.0 | 1 | |
daoquan | daoquan.lu@feixun.com.cn | 2017-03-21 10:09:30.0 | 1 |
akaltani | firstlast@108.61.41.58.choopa.net | 2016-08-17 21:20:58.0 | 1 |
RedBug | miguelvanhove@shiva.local | 2018-01-04 10:55:27.0 | 1 |
Nicholas Spencer | nspencer@shyp.com | 2016-11-18 06:18:08.0 | 21 |
??? | toshima@abt.jp | 2016-06-01 07:28:23.0 | 1 |
TOSMBClient
is a small library that serves as a simple SMB (Server Message Block ) client for iOS apps. The library allows connecting to SMB devices, downloading file metadata, and subsequently allows asynchronous downloading of files from an SMB device straight to an iOS device.
It is an Objective-C wrapper around Defective SMb, or libDSM, a low level SMB client library built in C built by some of VideoLabs' developers. A copy of libDSM has been specially cross-compiled for iOS device architectures and embedded in this library, so this project has no external dependencies.
ort "TOSMBClient.h"
BSession *session = [[TOSMBSession alloc] initWithHostName:@"Tims-NAS" ipAddress:@"192.168.1.3"];
sion setLoginCredentialsWithUserName:@"wagstaff" password:@"swordfish"];
Ideally, it is best to supply both the host name and IP address when creating a new session object. However, if you only initially know one of these values, TOSMBSession
will perform a lookup via NetBIOS to try and resolve the other value.
synchronous Request
sion requestContentsOfDirectoryAtFilePath:@"/"
success:^(NSArray *files){
NSLog(@"SMB Client Files: %@", error.localizedDescription);
}
error:^(NSError *error) {
NSLog(@"SMB Client Error: %@", error.localizedDescription);
}];
ynchronous Request
ray *files = [session requestContentsOfDirectoryAtFilePath:@"/" error:nil];
All request methods have a synchronous and an asynchronous implementation. Both return an NSArray
of TOSMBSessionFile
objects that provide metadata on each file entry discovered.
BSessionDownloadTask *downloadTask = [session downloadTaskForFileAtPath:@"/Comics/Issue-1.cbz"
destinationPath:nil //Default is 'Documents' directory
progressHandler:^(uint64_t totalBytesWritten, uint64_t totalBytesExpected) { NSLog(@"%f", (CGFloat)totalBytesWritten / (CGFloat) totalBytesExpected);
completionHandler:^(NSString *filePath) { NSLog(@"File was downloaded to %@!", filePath); }
failHandler:^(NSError *error) { NSLog(@"Error: %@", error.localizedDescription); }];
nloadTask resume];
Download tasks are handled similarily to their counterparts in NSURLSession
. They may paused or canceled at anytime (Both however reset the connection to ensure nothing hangs), and they additionally implement the UIApplication
backgrounding system to ensure downloads can continue, even if the user clicks the Home button.
iOS 7.0 or above.
Depending on which license you are using for libDSM, TOSMBClient
is available in multiple licenses.
For the LGPL v2.1 licensed version of libDSM, TOSMBClient
is also available under the same license.
For the commercially licensed version of Defective SMb, TOSMBClient
is available under the MIT license.