UFO
ufo_ioda_data_downloader.py
Go to the documentation of this file.
1 #!/usr/bin/env python3
2 
3 import os
4 import sys
5 import stat
6 import tarfile
7 import urllib.request
8 
9 bucket_name = "jedi-test-files"
10 
11 repository_name = sys.argv[1]
12 testfiles_name = sys.argv[2]
13 branch_name = sys.argv[3]
14 testfiles_path = sys.argv[4]
15 download_base_url = sys.argv[5]
16 
17 s3_file_name = repository_name+"/"+branch_name+"/"+testfiles_name
18 
19 def DownloadUntar(download_base_url, s3_file_name, testfiles_path, testfiles_name):
20  urllib.request.urlretrieve( download_base_url+"/"+s3_file_name+".md5", testfiles_path+"/"+testfiles_name+".md5")
21  urllib.request.urlretrieve( download_base_url+"/"+s3_file_name, testfiles_path+"/"+testfiles_name)
22  tar_file = tarfile.open(testfiles_path+"/"+testfiles_name)
23  tar_file.extractall(testfiles_path)
24  tar_file.close()
25 
26 # if .tar.gz and .tar.gz.md5 exist
27 # then download s3 md5
28 # and compare with local md5
29 if os.path.isfile(testfiles_path+"/"+testfiles_name) and os.path.isfile(testfiles_path+"/"+testfiles_name+".md5") :
30  print("local files found")
31 
32  # dl md5 save it as *.md5.dl
33  urllib.request.urlretrieve( download_base_url+"/"+s3_file_name+".md5", testfiles_path+"/"+testfiles_name+".md5.dl")
34 
35  # compare *md5.dl with md5 local
36  with open(testfiles_path+"/"+testfiles_name+".md5", 'r') as f:
37  md5_local = f.read()
38  with open(testfiles_path+"/"+testfiles_name+".md5.dl", 'r') as f:
39  md5_dl = f.read()
40  if md5_local == md5_dl :
41  print("no update in dataset")
42  else:
43  print("update found; download new dataset")
44  DownloadUntar(download_base_url, s3_file_name, testfiles_path, testfiles_name)
45 else:
46  print("local file not found; download from S3")
47  print("downloading "+ download_base_url+"/"+s3_file_name)
48  DownloadUntar(download_base_url, s3_file_name, testfiles_path, testfiles_name)
ufo_ioda_data_downloader.DownloadUntar
def DownloadUntar(download_base_url, s3_file_name, testfiles_path, testfiles_name)
Definition: ufo_ioda_data_downloader.py:19