Flask 项目使用 cloudinary 全纪录

Flask 项目使用 cloudinary 全纪录

六月 21, 2022

Flask 项目使用 cloudinary 全纪录

写在前面,由于在Heorku上运行程序过程中创建的文件将不会永久保存,而且会在一天内被重置。即用户上传的文件无法像在本地一样保存在服务器端的文件夹。因此将媒体文件保存在cloudinary(类似七牛云)。

如果要直接使用heroku的cloudinary插件需要绑定海外的信用卡🙂,所以直接嵌入源代码。

image-20220619191706357

项目地址

部署地址

配置

我是写在.env文件里面,在heroku需要手动设置

image-20220620141804054

1
2
3
4
5
6
# 在cloudinary主页的控制台
CLOUD_NAME=****
API_KEY=****
API_SECRET=****
CLOUDINARY_URL=****
# 记得大写
1
heroku config:set API_KEY=**** 

一些基本操作

1
2
3
cors = CORS()  # flask-cors用于跨域
cors.init_app(app)
@cross_origin()

具体实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import cloudinary
from cloudinary.uploader import upload


def upload_cloudinary(file_to_upload):
"""上传函数"""
cloudinary.config(
cloud_name=os.getenv('CLOUD_NAME'),
api_key=os.getenv('API_KEY'),
api_secret=os.getenv('API_SECRET'))

# cloudinary.uploader.upload 传入文件流或本地文件名
# 设置resource_type="auto" 可以上传任意格式文件
upload_result = upload(file_to_upload, resource_type="auto")

# 返回上传结果 url 和文件类型
return upload_result['url'], upload_result['format']

参考链接

https://devcenter.heroku.com/articles/cloudinary

Python image and video upload

Cloudinary Upload API简介:轻松替代AWS S3

flask-cloudinary

官方示例项目pycloudinary