对于部署在百度应用引擎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)