对于部署在百度应用引擎BAE上的项目,使用百度云存储BCS(Baidu Cloud Storage)是不错的存储方案。
百度云存储已有Python SDK,对它进行简单封装后,就可以直接在Flask中使用了,项目代码见GitHub上Flask-BCS。
使用示例代码:
from flask import Flask from flask_bcs import BCS BCS_HOST = 'BCS HOST' BCS_ACCESS_KEY = 'BCS Access Key' BCS_SECRET_KEY = 'BCS Secret Key' BCS_BUCKET_NAME = 'BCS Bucket Name' app = Flask(__name__) app.config.from_object(__name__) bcs = BCS(app) # 或者 # bcs = BCS() # bcs.init_app(app) # 保存文件到BCS @app.route('/save') def save(): data = 'data to save' filename = 'filename' allow_referers = ['http://*.duapp.com/*', 'http://zhangxc.com/*'] # 不设置allow_referers为完全public ret = bcs.save(data, filename, allow_referers) return str(ret) # 删除BCS中的文件 @app.route('/delete') def delete(): filename = 'filename' ret = bcs.delete(filename) return str(ret) # 根据文件名获取对应的公开URL @app.route('/url') def url(): filename = 'filename' return bcs.url(filename)