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

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

作者: 徐向博 | 来源:发表于2019-07-18 16:23 被阅读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

    相关文章

      网友评论

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

          本文链接:https://www.haomeiwen.com/subject/ovgllctx.html