# test http filesystem updates. # On 2013-09-06 this showed: # * file updates are limited to once per 60 seconds. # * file length() method will indicate a change in length, but the old file is returned. # * the website github always returns the current time, so it should always update, but instead # never updates from java.io import File, FileOutputStream from org.das2.util.filesystem import FileSystem from java.util import Date from java.lang import System # stupid hash function, do not use elsewhere def hashit( f ): f= f.toString() ff= open(f) s= ff.readline() i=1 for ch in s: i= i+ord(ch) ff.close() return i print 'cacheDir=', FileSystem.settings().getLocalCacheDir() f= File( '/home/jbf/public_html/autoplot/test/afile.txt' ) if ( f.exists() ): f.delete() t0= System.currentTimeMillis()-1000; # so relative times are always positive FileSystem.reset() print '-- test0 ----' f= File('/home/jbf/public_html/autoplot/test/afile.txt') fo= FileOutputStream(f) fo.write('01234') fo.close() #print 'actual modified: ', f.lastModified()-t0, Date(f.lastModified()) print 'actual length: ', f.length() # ---- fs= FileSystem.create('http://sarahandjeremy.net/~jbf/autoplot/test/') fo= fs.getFileObject('afile.txt') ff= fo.getFile( monitor ) print ff #print 'fo modified: ', fo.lastModified().getTime()-t0, Date(fo.lastModified().getTime()) print 'fo length: ', fo.getSize() print 'local length: ', ff.length() # ---- w= 15 print 'wait %d seconds...' % w from java.lang.Thread import sleep sleep(w*1000) print 'modify the length of the file on the server side' f= File('/home/jbf/public_html/autoplot/test/afile.txt') fo= FileOutputStream(f) fo.write('0123456789') fo.close() print 'actual file: ', f #print 'actual modified: ', f.lastModified()-t0, Date(f.lastModified()) print 'actual length: ', f.length() print 'actual hashit: ', hashit( f ) print '-- test1.5 ----' fs= FileSystem.create('http://sarahandjeremy.net/~jbf/autoplot/test/') fo= fs.getFileObject('afile.txt') #print 'fo modified: ', fo.lastModified().getTime()-t0, Date(fo.lastModified().getTime()) ff= fo.getFile( monitor ) print 'local file: ', ff print 'fo length: ', fo.getSize() print 'local length: ', ff.length() print 'local hashit: ', hashit(ff ) w= 15 print 'wait %d seconds...' % w from java.lang.Thread import sleep sleep(w*1000) print '-- test2 ----' fs= FileSystem.create('http://sarahandjeremy.net/~jbf/autoplot/test/') fo= fs.getFileObject('afile.txt') #print 'fo modified: ', fo.lastModified().getTime()-t0, Date(fo.lastModified().getTime()) ff= fo.getFile( monitor ) print 'local file: ', ff print 'fo length: ', fo.getSize() print 'local length: ', ff.length() print 'local hashit: ', hashit(ff) print '-- test3 ----' fs= FileSystem.create('http://sarahandjeremy.net/~jbf/autoplot/test/') fo= fs.getFileObject('afile.txt') print 'local file: ', ff #print 'fo modified: ', fo.lastModified().getTime()-t0, Date(fo.lastModified().getTime()) ff= fo.getFile( monitor ) print 'fo length: ', fo.getSize() print 'local length: ', ff.length() print 'local hashit: ', hashit(ff) sleep(w*1000) print '-- test4 ----' print 'modify the contents of the file on the server side' f= File('/home/jbf/public_html/autoplot/test/afile.txt') fo= FileOutputStream(f) fo.write('9123456789') fo.close() print 'actual file: ', f #print 'actual modified: ', f.lastModified()-t0, Date(f.lastModified()) print 'actual length: ', f.length() print 'actual hashit: ', hashit( f ) fs= FileSystem.create('http://sarahandjeremy.net/~jbf/autoplot/test/') fo= fs.getFileObject('afile.txt') print 'local file: ', ff #print 'fo modified: ', fo.lastModified().getTime()-t0, Date(fo.lastModified().getTime()) ff= fo.getFile( monitor ) print 'fo length: ', fo.getSize() print 'local length: ', ff.length() print 'local hashit: ', hashit(ff)