Advertisement
Guest User

Untitled

a guest
Dec 26th, 2013
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.63 KB | None | 0 0
  1. xquery version "3.0";
  2.  
  3. (: spec - http://claudius108.users.sourceforge.net/specs/expath/ft-client/ft-client.html :)
  4.  
  5. import module "http://expath.org/ns/ft-client";
  6. import module namespace functx="http://www.functx.com";
  7. declare namespace ft-client="http://expath.org/ns/ft-client";
  8.  
  9. declare variable $local:local-folder := '/eXist-db/webapp/WEB-INF/data/export/';
  10. declare variable $local:ftp-uri := xs:anyURI('ftp://anonymous:anonymous@asc.harvard.edu');
  11. declare variable $local:remote-folder := '/pub/incoming/misztur/';
  12. declare variable $local:remove-resource := 'full20131122-1140.zip';
  13. declare variable $local:retrieve-resource := 'report-20131122114035392.log';
  14.  
  15. for $ftp-connection in ft-client:connect($local:ftp-uri)
  16. return
  17. try
  18. {
  19. let $mkdir-on-ftp := ft-client:store-resource(
  20. $ftp-connection,
  21. $local:remote-folder, ())
  22.  
  23. let $transfer-to-ftp := 'skipped'
  24. (:for $local-file in file:list($local:local-folder)/file:file
  25. return
  26. ft-client:store-resource(
  27. $ftp-connection,
  28. $local:remote-folder || $local-file/@name/string(),
  29. file:read-binary($local:local-folder || $local-file/@name/string())):)
  30.  
  31. let $file-list-post-store := 'skipped'
  32. (:ft-client:list-resources($ftp-connection,$local:remote-folder):)
  33.  
  34. let $remove-resource-from-ftp := 'skipped'
  35. (:ft-client:delete-resource($ftp-connection,$local:remote-folder||$local:remove-resource):)
  36.  
  37. let $retrieve-start := util:system-dateTime()
  38. let $retrieve-resource-from-ftp :=
  39. ft-client:retrieve-resource($ftp-connection,$local:remote-folder||$local:retrieve-resource)
  40. let $retrieve-end := util:system-dateTime()
  41.  
  42. let $ftp-disconnect := ft-client:disconnect($ftp-connection)
  43.  
  44. return
  45. element results
  46. {
  47. element ftp-connect { $ftp-connection },
  48. element mkdir-on-ftp { $mkdir-on-ftp },
  49. element transfer-to-ftp { $transfer-to-ftp },
  50. element file-list-post-store { $file-list-post-store },
  51. element remove-resource-from-ftp { $remove-resource-from-ftp },
  52. element retrieve-resource-from-ftp { $retrieve-resource-from-ftp },
  53. element retrieve-resource-duration { functx:total-seconds-from-duration($retrieve-end - $retrieve-start)||' second(s)' },
  54. element ftp-disconnect { $ftp-disconnect }
  55. }
  56. }
  57. catch *
  58. {
  59. let $ftp-disconnect := ft-client:disconnect($ftp-connection)
  60.  
  61. return
  62. element exception
  63. {
  64. element ftp-disconnected { $ftp-disconnect },
  65. element err-code { $err:code },
  66. element err-desc { $err:description },
  67. element err-value { $err:value }
  68. }
  69. }
  70.  
  71. (:let $file := ft-client:retrieve-resource($ftp-connection,
  72. '/VOLUME1/FTP/nosql.sync-io.net/'||'report-20131225081630605.log'):)
  73. (:(
  74. for $file at $position in $files/ft-client:resources-list/ft-client:resource
  75. where ends-with($file/@name/string(), '.log')
  76. order by xs:dateTime($file/@last-modified) descending
  77. return $file
  78. )[1]
  79. /@name/string()):)
  80.  
  81.  
  82. (: return
  83. for $remote-file in $files/ft-client:resources-list/ft-client:resource
  84. where xs:dateTime($remote-file/@last-modified) lt (util:system-dateTime() - functx:dayTimeDuration(0,12,0,0))
  85. return $remote-file :)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement