import uuid from sts.sts import Sts, Scope from main import app from settings import settings actions = [ 'name/cos:PutObject', 'name/cos:InitiateMultipartUpload', 'name/cos:ListMultipartUploads', 'name/cos:ListParts', 'name/cos:UploadPart', 'name/cos:CompleteMultipartUpload', 'name/cos:AbortMultipartUpload', ] @app.post('/get_upload_credential') def get_upload_credential(): p = f'{settings.tencent_cloud.upload_prefix}/{uuid.uuid7()}' config = { 'duration_seconds': 600, 'secret_id': settings.tencent_cloud.secret_id, 'secret_key': settings.tencent_cloud.secret_key, 'region': settings.tencent_cloud.region, 'policy': Sts.get_policy( [ Scope( action, settings.tencent_cloud.bucket, settings.tencent_cloud.region, p, ) for action in actions ] ), } return { 'credential': Sts(config).get_credential(), 'key': f'document/{p}', }