def upload_sequence(path): # if no success/failed folders, create them create_dirs() if path.lower().endswith(".jpg"): # single file file_list = [path] else: # folder(s) file_list = [] for root, sub_folders, files in os.walk(path): file_list += [os.path.join(root, filename) for filename in files if filename.lower().endswith(".jpg")] # generate a sequence UUID sequence_id = uuid.uuid4() # S3 bucket s3_bucket = MAPILLARY_USERNAME+"/"+str(sequence_id)+"/" print("Uploading sequence {0}.".format(sequence_id)) # set upload parameters params = {"url": MAPILLARY_UPLOAD_URL, "key": s3_bucket, "permission": MAPILLARY_PERMISSION_HASH, "signature": MAPILLARY_SIGNATURE_HASH, "move_files": MOVE_FILES} # create upload queue with all files q = Queue() for filepath in file_list: if verify_exif(filepath): q.put(filepath) else: print("Skipping: {0}".format(filepath)) # create uploader threads with permission parameters uploaders = [UploadThread(q, params) for i in range(NUMBER_THREADS)] # start uploaders as daemon threads that can be stopped (ctrl-c) try: for uploader in uploaders: uploader.daemon = True uploader.start() for uploader in uploaders: uploaders[i].join(1) while q.unfinished_tasks: time.sleep(1) q.join() except (KeyboardInterrupt, SystemExit): print("\nBREAK: Stopping upload.") sys.exit() upload_done_file(params) print("Done uploading.")
You need to set the environment variables MAPILLARY_USERNAME, MAPILLARY_PERMISSION_HASH and MAPILLARY_SIGNATURE_HASH to your unique values. You also need upload.py in the same folder or in your PYTHONPATH since this script uses pieces of that. ''' if len(sys.argv) > 2: print("Usage: python upload_with_authentication.py path") raise IOError("Bad input parameters.") path = sys.argv[1] # if no success/failed folders, create them create_dirs() if path.lower().endswith(".jpg"): # single file file_list = [path] else: # folder(s) file_list = [] for root, sub_folders, files in os.walk(path): file_list += [os.path.join(root, filename) for filename in files if filename.lower().endswith(".jpg")] # get env variables try: MAPILLARY_USERNAME = os.environ['MAPILLARY_USERNAME'] MAPILLARY_PERMISSION_HASH = os.environ['MAPILLARY_PERMISSION_HASH'] MAPILLARY_SIGNATURE_HASH = os.environ['MAPILLARY_SIGNATURE_HASH']
You need to set the environment variables MAPILLARY_USERNAME, MAPILLARY_PERMISSION_HASH and MAPILLARY_SIGNATURE_HASH to your unique values. You also need upload.py in the same folder or in your PYTHONPATH since this script uses pieces of that. ''' if len(sys.argv) > 2: print("Usage: python upload_with_authentication.py path") raise IOError("Bad input parameters.") path = sys.argv[1] # if no success/failed folders, create them create_dirs() if path.lower().endswith(".jpg"): # single file file_list = [path] else: # folder(s) file_list = [] for root, sub_folders, files in os.walk(path): file_list += [ os.path.join(root, filename) for filename in files if filename.lower().endswith(".jpg") ] # get env variables try: