themblem/emblem5/scripts/upload-qrs.py
2025-10-29 21:27:29 +00:00

49 lines
1.3 KiB
Python
Executable File

#!/usr/bin/env python3
import oss2
import sys
import os
import time
import argparse
oss_ak = 'LTAI5tC2qXGxwHZUZP7DoD1A'
oss_sk = 'qPo9O6ZvEfqo4t8oflGEm0DoxLHJhm'
def parse_args():
parser = argparse.ArgumentParser()
parser.add_argument('--dir', '-d', type=str, default='/data/qrs/tree', help='directory of qrs')
return parser.parse_args()
def all_qrs(dir):
for r, ds, fs in os.walk(dir):
for f in fs:
if f.endswith('.jpg'):
yield os.path.join(r, f)
def main():
args = parse_args()
auth = oss2.Auth(oss_ak, oss_sk)
endpoint = 'https://oss-cn-guangzhou.aliyuncs.com'
bucket = oss2.Bucket(auth, endpoint, 'emblem-qrs')
rootdir = args.dir
aqrs = list(all_qrs(rootdir))
total = len(aqrs)
done = 0
print(f'total: {total}')
for qr in aqrs:
qrcode = os.path.basename(qr).split('.')[0]
prefix = qrcode[:2]
key = f'v5/{prefix}/{qrcode}.jpg'
for i in range(3):
try:
print(f'{done}/{total} {qr} -> {key}')
bucket.put_object_from_file(key, qr)
done += 1
break
except Exception as e:
print(f'{e}')
time.sleep(1)
if __name__ == '__main__':
main()