前端通过Python接口上传文件到阿里云OSS

2019-07-18  本文已影响0人  徐向博

最近在瞎折腾的时候,发现服务器带宽不够用了,本想升级一下带宽,但是看了看钱包还是算了,上OSS吧!所以就有了挖坑之路,,,

本文实现前端发送文件给服务器,由服务器上传到阿里云OSS,接口使用Python编写。阿里云官方也提供了JS直接上传的方法,但是为了练习一下Python,还是自己写接口吧 ,生命在于折腾 :)

# -*- coding: utf-8 -*-
import json
import time
from flask import request
from flask import Flask
from flask_cors import CORS
import os
import shutil
import oss2

# 这些个 嘤嘤嘤 需要替换成自己的key,OSS控制台可以拿到
access_key_id = os.getenv('OSS_TEST_ACCESS_KEY_ID', '嘤嘤嘤')
access_key_secret = os.getenv('OSS_TEST_ACCESS_KEY_SECRET', '嘤嘤嘤')
bucket_name = os.getenv('OSS_TEST_BUCKET', '嘤嘤嘤')
endpoint = os.getenv('OSS_TEST_ENDPOINT', '嘤嘤嘤')

# 确认参数
for param in (access_key_id, access_key_secret, bucket_name, endpoint):
    assert '<' not in param, '请设置参数:' + param

# 创建Bucket对象
bucket = oss2.Bucket(oss2.Auth(access_key_id, access_key_secret), endpoint, bucket_name)

# 接收文件
app = Flask(__name__)
@app.route('/', methods=['GET', 'POST'])
def index():
        # 上传文件到服务器
    file = request.files.get('file')
    if file is None:
        return '没有检索到文件'
    else:
                # 上传文件到阿里云OSS
        res = bucket.put_object(file.filename, file)
        if res.status == 200:
                        # 上传成功,获取文件带签名的地址,返回给前端
            url = bucket.sign_url('GET', file.filename, 60)
            return json.dumps(url)
        
if __name__ == '__main__':
    CORS(app, supports_credentials=True)
    app.run()

有疑问或错误之处欢迎留言交流!原文地址:http://blog.xuxiangbo.com/im-52.html

上一篇下一篇

猜你喜欢

热点阅读