#!/usr/bin/env python3
import os
import sys
import subprocess
BASE_URL = " https://commadataci.blob.core.windows.net/openpilotci/ "
TOKEN_PATH = " /data/azure_token "
def get_url ( route_name , segment_num , log_type = " rlog " ) :
ext = " hevc " if log_type in [ " fcamera " , " dcamera " ] else " bz2 "
return BASE_URL + " %s / %s / %s . %s " % ( route_name . replace ( " | " , " / " ) , segment_num , log_type , ext )
def upload_file ( path , name ) :
from azure . storage . blob import BlockBlobService
sas_token = None
if os . path . isfile ( TOKEN_PATH ) :
sas_token = open ( TOKEN_PATH ) . read ( ) . strip ( )
if sas_token is None :
sas_token = subprocess . check_output ( " az storage container generate-sas --account-name commadataci --name openpilotci --https-only --permissions lrw \
- - expiry $ ( date - u ' + % Y- % m- %d T % H: % M: % SZ ' - d ' +1 hour ' ) - - auth - mode login - - as - user - - output tsv " , shell=True).decode().strip( " \n " )
service = BlockBlobService ( account_name = " commadataci " , sas_token = sas_token )
service . create_blob_from_path ( " openpilotci " , name , path )
return " https://commadataci.blob.core.windows.net/openpilotci/ " + name
if __name__ == " __main__ " :
for f in sys . argv [ 1 : ] :
name = os . path . basename ( f )
url = upload_file ( f , name )
print ( url )