1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
|
import ftplib, os, posixpath, davlib
import fs_base_module
class FileObject(fs_base_module.FileObject):
def __init__(self, name, mode="r"):
self.davhost = 'webtest-upload.home.nl'
self.davport = 80
self.name = name
self.dav = davlib.DAV(self.davhost, self.davport)
self.fo = self.dav
def close(self):
self.fo.close()
def read(self, size=None):
if size==None:
return self.fo.read()
else:
return self.fo.read(size)
def write(self, s):
return 0
def seek(self, offset, whence=0):
self.fo.close()
assert whence == 0
self.fo = os.popen("curl -s -C %i %s" % (offset, self.name))
class FileSystem(fs_base_module.FileSystem):
def __init__(self, session):
global ftp
self.pardir = ".."
def isdir(self, d):
return 0
def islink(self, d):
return 0
def isfile(self, f):
return 1
def readlink(self, d):
return ""
def isexec(self, d):
return 1
def chdir(self, p):
return 0
def stat(self, f):
return 10*(0,)
def listdir(self, p):
return []
def open(self, f, mode="r"):
return FileObject(self.v2fs(f), mode)
def rmdir(self, d):
return 0
def mkdir(self, d):
return 0
def unlink(self, p):
return 0
class Session:
def cmd_size(self, f):
self.reply("500 Not available here")
|