当前位置: 首页 > wzjs >正文

做运营必知网站百度推广账号登录

做运营必知网站,百度推广账号登录,免费logo设计在线生成器u钙网,江苏五星建设集团有限公司网站大家好,我是Petter Guo 对Coding充满热情的🐂🐎,坚信实操出真知。在这里,你将听到最真实的经验分享,绝不贩卖焦虑,只提供积极向上的硬核干货,助你一路前行! 如果对你有帮助, 请点赞…

大家好,我是Petter Guo

对Coding充满热情的🐂🐎,坚信实操出真知。在这里,你将听到最真实的经验分享,绝不贩卖焦虑,只提供积极向上的硬核干货,助你一路前行!

如果对你有帮助, 请点赞+关注鼓励下, 🌹🌹

无论你是前端还是后端, 负责的业务是ToB还是ToC, 一直无法避开文件上传,图片上传…

下面就来操作下吧

本节知识点

  • Flask框架应用
  • 阿里OSS配置
  • 请求类型全解
  • postman 实操
  • 课后习题

准备

# Flask框架
pip install Flask
# oss2-阿里OSS
pip install oss2, python-dotenv

具体架构设计可以参考上一篇第一个Web应用

  • 引入相关的包(app/route/admin/app/route/admin/ossUpload)
# 生成唯一文件名
import uuid
from flask import Blueprint, request
# 读取本地环境变量
import os
import oss2
from app.utils.response import success_response, error_response
  • 配置OSS

登录阿里控制台, 找到对象存储进行创建, 选择指定区域就可以了
创建buckets

这里直接选用raw方式即可(创建之后根据存储与访问进行计费, 文件少不用缴费)

  • 创建access_key

RAM访问创建

创建成功后, 复制下来, 存储到本地env文件中, 一定要保护该密钥

  • 密钥获取
access_key_id = os.getenv("ALI_OSS_KEY")
access_key_secret = os.getenv("ALI_OSS_KEY_SECRET")
# petter-os
bucket_name = os.getenv("ALI_OSS_BUCKET")
# oss-cn-shanghai.aliyuncs.com
oss_endpoint = os.getenv("ALI_OSS_ENDPOINT")

输出api服务

@upload_bp.route('/upload', methods=['POST'])
def upload_file():# 创建认证对象auth = oss2.Auth(access_key_id, access_key_secret)# 创建 bucket 对象bucket = oss2.Bucket(auth, oss_endpoint, bucket_name)

通常的文件上传采用的都是Content-type: multipart/form-data; 其实有很多, 常用的还有Content-type: application/json; 下面简单分析这两个有什么区别:

  • 请求类型对比
特性applicaiton/jsonmultipart/form-data
主要用途传输结构化数据(对象、数组等),API 通信文件上传,包含文件的表单提交,混合数据提交
文件支持不直接支持(文件需 Base64 编码,效率低)直接支持(传输二进制内容,效率高)
数据结构JSON 格式的字符串,支持深层嵌套多部分数据,每部分有独立 Content-Disposition/Type
编码方式纯文本 JSON 字符串每个部分独立编码,由边界分隔
可读性对于人类和机器都易于阅读和解析较差,包含较多协议头部和边界信息
传输效率对于结构化数据传输效率高对于文件传输效率高,但整体请求体可能因边界而变大
服务器解析简单,多数语言内置 JSON 解析器复杂,需要专门的库来解析多部分数据和提取文件
  • postMan工具上传

上传成功

请求参数是 file, 根据file可以获取对应的文件

获取上传文件

  • 文件类型判断和获取
file = request.files['file']
content_type = file.mimetype if file.mimetype else 'application/octet-stream'
  • 文件名称和重新设置
original_filename = file.filename
file_extension = original_filename.rsplit('.', 1)[1].lower()
unique_filename = f"{uuid.uuid4()}.{file_extension}"
remote_file = f"mall/{unique_filename}"
  • 上传
result = bucket.put_object(remote_file, file.stream, headers={'Content-Type': content_type}
)if result.status == 200:# 成功后的URLossImageUrl = f"https://{bucket_name}.{oss_endpoint}/{remote_file}"return success_response({"imageUrl": ossImageUrl,"message": "上传成功"})

到这里, 完整的上传功能就已经ok了, 支持上传图片,CSV等多种文件

  • 问题: 防盗链是什么原理呢 ?
http://www.dtcms.com/wzjs/142294.html

相关文章:

  • 苏宁易购网站上的营销页面口碑营销案例分析
  • 网站建设 前后台目录结构一元手游平台app
  • 杭州高端网站设计自媒体平台大全
  • 自己做的网站如何上传网上北京搜索引擎优化主管
  • 上海网站建设服务宁德外链网盘系统
  • 专业html5网站建设seo快速推广
  • 青海网站建设与维护网站制作教程视频
  • 网站为什么被降权网站联盟推广
  • 服务器做网站数据库h5页面制作平台
  • 柳州城市的城乡建设管理局网站企业网页设计公司
  • 苏中建设集团官方网站搜索引擎网站排名优化方案
  • 做兼职的网站策划书百度快照首页
  • 响应式网站尺寸seo实战密码
  • 用javaee做的网站模板企业网站排名优化公司
  • 网站域名备案证明山东百度推广代理
  • 交通部基本建设质量监督网站岳阳seo快速排名
  • 小程序同步wordpressseo关键词排名优化哪家好
  • 做网站每年需要购买域名吗百度答主招募入口官网
  • 保定网站建设哪家好网络推广的公司更可靠
  • wordpress文章标记单页应用seo如何解决
  • 江苏网站建设seo优化建设公司网站大概需要多少钱?
  • 万网怎么建立网站整站优化seo
  • 科技公司网站响应式百度关键词优化词精灵
  • 免费单页网站建设360免费建站系统
  • 做一年的网站维护价格域名访问网站入口
  • 网站建设游戏公司外链链接平台
  • 深圳新站优化站长之家的作用
  • 文化类网站的前置审批东莞网络营销
  • 设计工作室 网站竞价交易规则
  • 教育门户网站建设福建seo排名