Skip to main content

IoT Samba Client Library for Python

Project description

iot-samba-client

python version pre-commit Keep a Changelog CI_CD GitHub_Actions package PyPI smbprotocol version

This package is a wrapper around the smbprotocol SDK to provide a synchronous client for interacting with file shares from IoT edge devices.

Official Documentation | Source code | Package PyPI

Table of Contents

Versioning

This repository adheres to Semantic Versioning. It will be maintained through the CHANGELOG.md and in GitHub Releases. It's important to note that you must maintain the version with your releases in iot/samba/client/_version.py, otherwise a new package version will fail to get published.

Getting Started

This section provides basic examples with the iot-samba-client.

Prerequisites

  • Python 3.7 or later is required to use this package.

  • You must have a Samba Windows File Share server to use this package.

Basic Examples

  1. Install via pip:

    pip install iot-samba-client
    
  2. Import and say hello:

    from iot.samba.client import __version__
    
    
    print(f"hello world from iot-samba-client version: {__version__}")
    
  3. Basic usage:

    import tempfile
    
    from iot.samba.client import IoTSambaClient
    
    # instantiate client
    samba_client = IoTSambaClient(
        smb_server="windows-samba-s",
        smb_host="1.2.3.456",
        smb_port=445,
        smb_user="mySambaUserName",
        smb_pass="mySambaPass***"
    )
    
    # print info w/ repr
    print(f"{samba_client.__repr__()}")
    
    # download blob to tempfile
    temp_file = tempfile.NamedTemporaryFile()
    download_result = samba_client.download_file(
        share="MY_SAMBA_SHARE",
        path="path\\to\\blob\\parent\\dir",
        file="blob.txt",
        dest=temp_file.name,
    )
    if not download_result:
        print("unable to download file")
        temp_file.close()
        samba_client.disconnect()
        raise
    
    # upload tempfile to blob
    upload_result = samba_client.upload_file(
        share="MY_SAMBA_SHARE",
        path="path\\to\\new\\parent\\dir",
        file="newBlob.txt",
        source=temp_file.name,
    )
    if not upload_result:
        print("unable to upload file")
        temp_file.close()
        samba_client.disconnect()
        raise
    
    # clean-up local memory and disconnect from smb session
    temp_file.close()
    samba_client.disconnect()
    

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

iot-samba-client-1.0.5.tar.gz (5.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

iot_samba_client-1.0.5-py3-none-any.whl (4.5 kB view details)

Uploaded Python 3

File details

Details for the file iot-samba-client-1.0.5.tar.gz.

File metadata

  • Download URL: iot-samba-client-1.0.5.tar.gz
  • Upload date:
  • Size: 5.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.13

File hashes

Hashes for iot-samba-client-1.0.5.tar.gz
Algorithm Hash digest
SHA256 84f48fa47dd2dadf718c7b9e1d0f0d8fa155125b1c0ad2433e1da459ef7709da
MD5 85d6de8a6f01e618240e75e82df6278d
BLAKE2b-256 afdba8189017a7d6a72fb685a06a84b26ec735903e96bd5d866722728d68b249

See more details on using hashes here.

File details

Details for the file iot_samba_client-1.0.5-py3-none-any.whl.

File metadata

File hashes

Hashes for iot_samba_client-1.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 8662081e0e360c6ddeccf470039580f0c0dc15bbf8f6ef93e30dba458be58d88
MD5 f57e5eeac9a6ed2c50cfe777672c6c2e
BLAKE2b-256 f082b36e56101b1bbd87597c7eaae7cfc3268b73ce064fedc714816933430e3d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page