{ "info": { "author": "zencore", "author_email": "dobetter@zencore.cn", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3 :: Only", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "sftpd\n=====\n\n.. image:: https://travis-ci.org/appstore-zencore/sftpd.svg?branch=master\n :target: https://travis-ci.org/appstore-zencore/sftpd\n\nA simple multi-thread sftp server.\n\nInstall\n-------\n\n::\n\n pip install sftpd\n\n\nUsage\n-----\n\n::\n\n E:\\code\\appstart>sftpd --help\n Usage: sftpd [OPTIONS] COMMAND [ARGS]...\n\n Options:\n -c, --config FILENAME Config file path, use yaml format.\n --help Show this message and exit.\n\n Commands:\n reload Reload application server.\n start Start application server.\n stop Stop application server.\n\nExample start\n-------------\n\n::\n\n D:\\sftpd>dir\n\n D:\\sftpd \n\n 2018/05/18 20:51 .\n 2018/05/18 20:51 ..\n 2018/05/18 20:39 1,036 sftpd.yml\n 2018/05/18 20:06 36 users.yml\n 2 files 1,072 bytes\n 2 folders 289,594,834,944 bytes\n\n C:\\Users\\zencore\\Documents\\GitHub\\sftpd\\src>python -m sftpd.application start\n 2018-05-18 20:39:30,548 DEBUG sftp server starting with config = {'application': {'daemon': False, 'main': 'sftpd.server.sftp_server'}, 'server': {'binding': '0.0.0.0', 'port': 2222, 'backlog': 32}, 'sftpd': {'root': 'e:/sftpd', 'keyfile': '~/.ssh/id_rsa', 'users': 'users.yml'}, 'logging': {'version': 1, 'disable_existing_loggers': False, 'formatters': {'simple': {'format': '%(asctime)-15s\\t%(levelname)s\\t%(message)s'}}, 'handlers': {'console': {'class': 'logging.StreamHandler', 'level': 'DEBUG', 'formatter': 'simple'}, 'file': {'class': 'logging.handlers.TimedRotatingFileHandler', 'level': 'DEBUG', 'formatter': 'simple', 'filename': 'server.log', 'backupCount': 30, 'when': 'D', 'interval': 1, 'encoding': 'utf-8'}}, 'loggers': {'sftpd': {'level': 'DEBUG', 'handlers': ['file', 'console'], 'propagate': False}}, 'root': {'level': 'DEBUG', 'handlers': ['file', 'console']}}}.\n 2018-05-18 20:39:30,548 DEBUG sftp server start socket listening: binding=0.0.0.0, port=2222, backlog=32.\n 2018-05-18 20:39:30,564 DEBUG sftp server wating connection...\n\n D:\\sftpd>sftpd start\n 2018-05-18 20:52:01,012 DEBUG sftp server starting with config = {'application': {'daemon': False, 'main': 'sftpd.server.sftp_server'}, 'server': {'binding': '0.0.0.0', 'port': 2222, 'backlog': 32}, 'sftpd': {'root': 'e:/sftpd', 'keyfile': '~/.ssh/id_rsa', 'users': 'users.yml'}, 'logging': {'version': 1, 'disable_existing_loggers': False, 'formatters': {'simple': {'format': '%(asctime)-15s\\t%(levelname)s\\t%(message)s'}}, 'handlers': {'console': {'class': 'logging.StreamHandler', 'level': 'DEBUG', 'formatter': 'simple'}, 'file': {'class': 'logging.handlers.TimedRotatingFileHandler', 'level': 'DEBUG', 'formatter': 'simple', 'filename': 'server.log', 'backupCount': 30, 'when': 'D', 'interval': 1, 'encoding': 'utf-8'}}, 'loggers': {'sftpd': {'level': 'DEBUG', 'handlers': ['file', 'console'], 'propagate': False}}, 'root': {'level': 'DEBUG', 'handlers': ['file', 'console']}}}.\n 2018-05-18 20:52:01,027 DEBUG sftp server start socket listening: binding=0.0.0.0, port=2222, backlog=32.\n 2018-05-18 20:52:01,043 DEBUG sftp server wating connection...\n\n\nExample config\n--------------\n\n::\n\n application:\n daemon: true\n pidfile: sftpd.pid\n\n server:\n binding: 0.0.0.0\n port: 2222\n backlog: 32\n\n sftpd:\n root: e:/sftpd\n keyfile: ~/.ssh/id_rsa\n users: users.yml\n\n logging:\n version: 1\n disable_existing_loggers: false\n formatters:\n simple:\n format: \"%(asctime)-15s\\t%(levelname)s\\t%(message)s\"\n handlers:\n console:\n class: logging.StreamHandler\n level: DEBUG\n formatter: simple\n file:\n class: logging.handlers.TimedRotatingFileHandler\n level: DEBUG\n formatter: simple\n filename: server.log\n backupCount: 30\n when: D\n interval: 1\n encoding: utf-8\n loggers:\n sftpd:\n level: DEBUG\n handlers:\n - file\n - console\n propagate: no\n root:\n level: DEBUG\n handlers:\n - file\n - console\n\nNote:\n\n1. sftpd.root defaults to os.getcwd().\n2. sftpd.keyfile defaults to ~/.ssh/id_rsa.\n3. You can use ssh-keygen to generate server key.\n4. sftpd.users defaults to users.yml, it is yaml format config file contains users and users' password.\n\n\nExample users\n-------------\n\n::\n\n user01:\n password: user01's-password\n user02:\n password: user02's-password\n\n\nNote:\n\n1. sftpd will always reload data from users.yml while doing authentication.\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/appstore-zencore/sftpd", "keywords": "sftpd", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "sftpd", "package_url": "https://pypi.org/project/sftpd/", "platform": "", "project_url": "https://pypi.org/project/sftpd/", "project_urls": { "Homepage": "https://github.com/appstore-zencore/sftpd" }, "release_url": "https://pypi.org/project/sftpd/0.1.2/", "requires_dist": null, "requires_python": "", "summary": "A simple multi-thread sftp server.", "version": "0.1.2" }, "last_serial": 3881837, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "c40bed74414912a1a2d06a450eda69a1", "sha256": "ce353298201a395bb6eb071253fd5f676666d1fb42bb69fc17d130b24e9fa8a1" }, "downloads": -1, "filename": "sftpd-0.1.0.tar.gz", "has_sig": false, "md5_digest": "c40bed74414912a1a2d06a450eda69a1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5973, "upload_time": "2018-05-18T13:51:01", "url": "https://files.pythonhosted.org/packages/44/d4/5ea0854006da519ba0e1ab1548b0b3604933c85f28dd1d826324fd6c2bbe/sftpd-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "a97a9d396865e0c206a19cc7fa891c57", "sha256": "43451703e8df8728e6ff39c8aa9721877c6439f3d7d87b7e55f0be1145028735" }, "downloads": -1, "filename": "sftpd-0.1.1.tar.gz", "has_sig": false, "md5_digest": "a97a9d396865e0c206a19cc7fa891c57", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6027, "upload_time": "2018-05-18T14:52:52", "url": "https://files.pythonhosted.org/packages/3f/cf/c49da5e177b230e60bc89845e9b1498e3675016057231f8ebfb95200c2b7/sftpd-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "52392399e5dbbdfef61d0b454f057a4d", "sha256": "8fb2c983976beb63065e5f4a941a79faa9fd1f87fd96d3898a12de922b693fbb" }, "downloads": -1, "filename": "sftpd-0.1.2.tar.gz", "has_sig": false, "md5_digest": "52392399e5dbbdfef61d0b454f057a4d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6060, "upload_time": "2018-05-21T01:23:46", "url": "https://files.pythonhosted.org/packages/b5/80/1daf92bf12ad864d8a84ccc6d45e2c8bffcf2ce0deb7151e7c284b571396/sftpd-0.1.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "52392399e5dbbdfef61d0b454f057a4d", "sha256": "8fb2c983976beb63065e5f4a941a79faa9fd1f87fd96d3898a12de922b693fbb" }, "downloads": -1, "filename": "sftpd-0.1.2.tar.gz", "has_sig": false, "md5_digest": "52392399e5dbbdfef61d0b454f057a4d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6060, "upload_time": "2018-05-21T01:23:46", "url": "https://files.pythonhosted.org/packages/b5/80/1daf92bf12ad864d8a84ccc6d45e2c8bffcf2ce0deb7151e7c284b571396/sftpd-0.1.2.tar.gz" } ] }