50 lines
1.8 KiB
Python
50 lines
1.8 KiB
Python
# -*- coding: utf-8 -*-
|
||
# pip install -U cos-python-sdk-v5
|
||
|
||
from qcloud_cos import CosConfig
|
||
from qcloud_cos import CosS3Client
|
||
import sys
|
||
import logging
|
||
|
||
from flask import Flask, jsonify, request
|
||
from flask_restful import reqparse, abort, Api, Resource
|
||
|
||
logging.basicConfig(level=logging.INFO, stream=sys.stdout)
|
||
|
||
parser = reqparse.RequestParser()
|
||
parser.add_argument('filename')
|
||
parser.add_argument('body')
|
||
|
||
|
||
class Cos_sdk(Resource):
|
||
def __init__(self):
|
||
secret_id = 'AKIDGPMAQYuK1Xr198Eb9h7QYWOdWK0arLTP' # 替换为用户的 secretId
|
||
secret_key = 'sUBi3XrzvkpqiQwKcmmZEi2A7GH7lEMM' # 替换为用户的 secretKey
|
||
region = 'ap-beijing' # 替换为用户的 Region
|
||
token = None # 使用临时密钥需要传入 Token,默认为空,可不填
|
||
scheme = 'https' # 指定使用 http/https 协议来访问 COS,默认为 https,可不填
|
||
config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token, Scheme=scheme)
|
||
# 2. 获取客户端对象
|
||
self.client = CosS3Client(config)
|
||
self.args = parser.parse_args()
|
||
self.bucket = "client-1256832210"
|
||
self.base_dirs = "/ad"
|
||
self.url = "https://resource.kingsome.cn"
|
||
|
||
def post(self):
|
||
# filename = self.args['filename']
|
||
# body = self.args['body']
|
||
try:
|
||
filename = request.files.get('image-file').filename
|
||
body = request.files.get('image-file').read()
|
||
except Exception as e:
|
||
return jsonify
|
||
{'code': 500, 'message': f'get filename={filename},body={body} ', 'error': e}
|
||
cos_filename = f"{self.base_dirs}/{filename}"
|
||
url = f"{self.url}/{cos_filename}"
|
||
|
||
response = self.client.put_object(Bucket=self.bucket, Body=body, Key=cos_filename, StorageClass='STANDARD',
|
||
EnableMD5=False)
|
||
print(response)
|
||
return jsonify({'code': 200, 'message': {'url': url, 'response': response}})
|