# -*- 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}})