themblem/emblem5/ai/upload.py

36 lines
1.1 KiB
Python
Executable File

#!/usr/bin/env python3
import oss2
import sys
import os
import time
oss_ak = 'LTAI5tC2qXGxwHZUZP7DoD1A'
oss_sk = 'qPo9O6ZvEfqo4t8oflGEm0DoxLHJhm'
auth = oss2.Auth(oss_ak, oss_sk)
endpoint = 'https://oss-rg-china-mainland.aliyuncs.com'
bucket = oss2.Bucket(auth, endpoint, 'emblem-models')
class ProgressCallback:
def __init__(self, filename, total_size):
self.filename = filename
self.total_size = total_size
self.consumed = 0
self.start_time = time.time()
def __call__(self, consumed, total):
self.consumed = consumed
elapsed = time.time() - self.start_time
if elapsed > 0:
bps = consumed / elapsed
percent = 100 * consumed / total if total else 0
print(f"\r{self.filename}: {percent:.1f}% ({consumed}/{total} bytes, {bps:.0f} B/s)", end='', flush=True)
for x in sys.argv[1:]:
file_size = os.path.getsize(x)
filename = os.path.basename(x)
print(f"Uploading {filename} ({file_size} bytes)...")
bucket.put_object_from_file(filename, x, progress_callback=ProgressCallback(filename, file_size))
print() # New line after progress completes