download_sniper_shooting.py 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. #!/usr/bin/python
  2. # -*- coding: UTF-8 -*-
  3. import os
  4. import sys
  5. import time
  6. import pyrebase
  7. from pyrebase.pyrebase import storage
  8. import firebase_admin
  9. from firebase_admin import storage as admin_storage, credentials, firestore
  10. config = {
  11. "apiKey": "AIzaSyDgUaO2w4gtBI_pKyRWKxORItTSUH_FP1I",
  12. "authDomain": "sniper-shooting-e959d.firebaseapp.com",
  13. "databaseURL": "https://databaseName.firebaseio.com",
  14. "storageBucket": "sniper-shooting-e959d.appspot.com",
  15. "serviceAccount": "sniper-shooting-e959d-firebase-adminsdk-79zph-8fd785934d.json"
  16. }
  17. parentdir = 'ss_upload'
  18. datadir = 'snipershooting_'
  19. downloadDirName = 'Downloads'
  20. uploadDirName = 'Uploads'
  21. firebase = pyrebase.initialize_app(config)
  22. storage = firebase.storage()
  23. all_files = storage.child("").list_files()
  24. def main(argv):
  25. #print('argv=',argv)
  26. if len(argv) == 2:
  27. if argv[0] == 'del':
  28. delete(int(argv[1]))
  29. print(datadir+'firebase delete op done')
  30. if argv[0] == 'get':
  31. download(int(argv[1]))
  32. print(datadir+'firebase download op done')
  33. else:
  34. print('Commond param error')
  35. def download(number):
  36. cred = credentials.Certificate(config['serviceAccount'])
  37. admin = firebase_admin.initialize_app(cred, {'storageBucket': config['storageBucket']})
  38. bucket = admin_storage.bucket()
  39. if not os.path.exists(parentdir):
  40. os.mkdir(parentdir)
  41. timestr = time.strftime('%Y%m%d%H%M%S',time.localtime(time.time()))
  42. rootDir = os.path.join(parentdir, datadir + timestr)
  43. uploadDir = os.path.join(rootDir, uploadDirName)
  44. downloadDir = os.path.join(rootDir, downloadDirName)
  45. if not os.path.exists(rootDir):
  46. os.mkdir(rootDir)
  47. os.mkdir(uploadDir)
  48. os.mkdir(downloadDir)
  49. count = 0
  50. for file in all_files:
  51. if count == number:
  52. break
  53. try:
  54. print(datadir+'Download file=',file.name)
  55. if 'UserData_' in file.name:
  56. file.download_to_filename(os.path.join(uploadDir, file.name))
  57. else:
  58. file.download_to_filename(os.path.join(downloadDir, file.name))
  59. blob = bucket.blob(file.name)
  60. blob.delete()
  61. except:
  62. print(datadir+'Download Failed:', file.name)
  63. count += 1
  64. def delete(number):
  65. cred = credentials.Certificate(config['serviceAccount'])
  66. admin = firebase_admin.initialize_app(cred, {'storageBucket': config['storageBucket']})
  67. bucket = admin_storage.bucket()
  68. count = 0
  69. for file in all_files:
  70. if count == number:
  71. break
  72. try:
  73. print(datadir+'Delete file='+file.name)
  74. blob = bucket.blob(file.name)
  75. blob.delete()
  76. except:
  77. print(datadir+'Delete file error:', file.name)
  78. count += 1
  79. if __name__ == '__main__':
  80. main(sys.argv[1:])