| 1234567891011121314151617181920212223242526272829303132333435363738394041 |
- 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.upload_prefix}/{uuid.uuid7()}'
- config = {
- 'duration_seconds': 600,
- 'secret_id': settings.tencent.secret_id,
- 'secret_key': settings.tencent.secret_key,
- 'region': settings.tencent.region,
- 'policy': Sts.get_policy(
- [
- Scope(
- action,
- settings.tencent.bucket,
- settings.tencent.region,
- p,
- )
- for action in actions
- ]
- ),
- }
- return {
- 'credential': Sts(config).get_credential(),
- 'key': f'document/{p}',
- }
|