#!/usr/bin/python # -*- coding: UTF-8 -*- import os import sys import time import pyrebase from pyrebase.pyrebase import storage import firebase_admin from firebase_admin import storage as admin_storage, credentials, firestore config = { "apiKey": "AIzaSyDgUaO2w4gtBI_pKyRWKxORItTSUH_FP1I", "authDomain": "sniper-shooting-e959d.firebaseapp.com", "databaseURL": "https://databaseName.firebaseio.com", "storageBucket": "sniper-shooting-e959d.appspot.com", "serviceAccount": "sniper-shooting-e959d-firebase-adminsdk-79zph-8fd785934d.json" } parentdir = 'ss_upload' datadir = 'snipershooting_' downloadDirName = 'Downloads' uploadDirName = 'Uploads' firebase = pyrebase.initialize_app(config) storage = firebase.storage() all_files = storage.child("").list_files() def main(argv): #print('argv=',argv) if len(argv) == 2: if argv[0] == 'del': delete(int(argv[1])) print(datadir+'firebase delete op done') if argv[0] == 'get': download(int(argv[1])) print(datadir+'firebase download op done') else: print('Commond param error') def download(number): cred = credentials.Certificate(config['serviceAccount']) admin = firebase_admin.initialize_app(cred, {'storageBucket': config['storageBucket']}) bucket = admin_storage.bucket() if not os.path.exists(parentdir): os.mkdir(parentdir) timestr = time.strftime('%Y%m%d%H%M%S',time.localtime(time.time())) rootDir = os.path.join(parentdir, datadir + timestr) uploadDir = os.path.join(rootDir, uploadDirName) downloadDir = os.path.join(rootDir, downloadDirName) if not os.path.exists(rootDir): os.mkdir(rootDir) os.mkdir(uploadDir) os.mkdir(downloadDir) count = 0 for file in all_files: if count == number: break try: print(datadir+'Download file=',file.name) if 'UserData_' in file.name: file.download_to_filename(os.path.join(uploadDir, file.name)) else: file.download_to_filename(os.path.join(downloadDir, file.name)) blob = bucket.blob(file.name) blob.delete() except: print(datadir+'Download Failed:', file.name) count += 1 def delete(number): cred = credentials.Certificate(config['serviceAccount']) admin = firebase_admin.initialize_app(cred, {'storageBucket': config['storageBucket']}) bucket = admin_storage.bucket() count = 0 for file in all_files: if count == number: break try: print(datadir+'Delete file='+file.name) blob = bucket.blob(file.name) blob.delete() except: print(datadir+'Delete file error:', file.name) count += 1 if __name__ == '__main__': main(sys.argv[1:])