Skip to content
Snippets Groups Projects
Commit 23589cb1 authored by anthony.boulmier's avatar anthony.boulmier
Browse files

modify folder name

parent 94a2fb40
Branches master
No related tags found
No related merge requests found
File deleted
File deleted
import SOAPpy
import argparse
import pprint
import os
# put here your own ip
SERVER_URL = 'http://127.0.0.1:8123'
if __name__ == '__main__':
parser = argparse.ArgumentParser(description='Simple SOAP FTP client')
subparsers = parser.add_subparsers(help='sub-command help', dest='which')
parser_list = subparsers.add_parser('list',help='list directory')
parser_list.add_argument('directory', type=str)
parser_get = subparsers.add_parser('get', help='get file')
parser_get.add_argument('file', type=str)
parser_get.add_argument('destination', type=str)
parser_put = subparsers.add_parser('put', help='put file in ftp')
parser_put.add_argument('source', type=str)
parser_put.add_argument('destination', type=str)
args = parser.parse_args()
server = SOAPpy.SOAPProxy(SERVER_URL)
if args.which == 'list':
dir, sdirs, files = server.list(args.directory)
print "[%s]" % dir
for d in sdirs:
print "[%s/%s]" % (dir, d)
for f in files:
print "%s/%s" % (dir, f)
elif args.which == 'get':
directory, filename, data = server.get(args.file)
with open(args.destination, 'w+') as f:
f.write(data)
elif args.which == 'put':
with open(args.source, 'r') as src:
data = src.read()
print server.put(args.destination, data)
import SOAPpy
import sys
import argparse
from os.path import expanduser, join, isdir, abspath
from os import listdir
main_directory = None
def list(relative_directory):
global main_directory
target_directory = join(main_directory, relative_directory) if relative_directory != '.' else main_directory
dirs = listdir(target_directory)
s = [d for d in dirs if isdir(d)]
f = [f for f in dirs if not isdir(d)]
return (target_directory, s, f)
def get(relative_path):
global main_directory
with open(join(main_directory,relative_path), 'r') as f:
payload = f.read()
return (main_directory, relative_path, payload)
def put(relative_path, payload):
global main_directory
new_file = join(main_directory, relative_path)
try:
with open(new_file, 'w+') as f:
f.write(payload)
except:
return 'Error while writing %s :(' % new_file
return '%s added successfuly!' % new_file
def start_ftp(**kwargs):
global main_directory
main_directory = kwargs.get('directory')
server = SOAPpy.SOAPServer(('0.0.0.0', kwargs.get('port')))
server.registerFunction(list)
server.registerFunction(get)
server.registerFunction(put)
server.serve_forever()
if __name__ == '__main__':
parser = argparse.ArgumentParser(description='Simple FTP server using SOAP')
parser.add_argument('-p', '--port', type=int, required=True, help='Listening port')
parser.add_argument('-d', '--directory', type=str, required=True, help='Home directory of the FTP')
args = parser.parse_args()
start_ftp(port=args.port, directory=abspath(args.directory))
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment