PasteDeploy介绍
2024年08月21日 ,作者: 黄兵
WSGI Server收到请求后调用WSGI application的入口点(一般为callable对象或者函数)来处理请求。比如,uWSGI和mod_wsgi默认调用名为application的入口点。PasteDeploy是一套发现和配置WSGI应用的系统。它根据指定的配置文件动态生成入口点和组织WSGI application间的逻辑关系。配置文件为INI格式。每个配置文件可以包含多个sec...
OpenStack Swift 中 ACL 认证是由那个中间件实现的
2024年08月21日 ,作者: 黄兵
在 OpenStack Swift 中,访问控制列表(ACL)的认证通常由 Swift 内部的访问控制机制 来处理,而不是单独的某个中间件。ACL 的逻辑通常与身份验证(Authentication)和授权(Authorization)服务紧密结合在一起。常见的身份验证中间件(比如 tempauth 或 keystone)会负责处理身份验证和权限验证的逻辑,而 ACL 的具体权限控制则是在 Swi...
Nginx 上传大型文件相关配置
2024年08月13日 ,作者: 黄兵
如果我们使用默认的 Nginx 配置,上传一个 2MB 的文件会出现:413 Request Entity Too Large出现这个问题的主要原因是:Nginx 默认情况下,Nginx 的文件上传大小限制是有限的,一般是2MB。 如果我们需要 Nginx 作为反向代理,上传大型文件,着我们需要修改 Nginx 的相关配置。要配置 Nginx 作为反向代理来支持上传大文件(如最大 1TB),需要调...
Flask 文件分片上传
2024年08月12日 ,作者: 黄兵
最近在做大文件分片上传,前端使用的是 Dropzone,后端使用的是 Flask 处理上传的文件。下面是 view 的示例代码:if request.method == 'POST': if 'file' not in request.files: return jsonify({'error': 'No file part'}), 400 file = re...
OpenStack Swift 大文件分片
2024年08月12日 ,作者: 黄兵
OpenStack Swift 对大文件分片上传(Large Object Uploads)主要通过以下两种方式来实现:Static Large Objects (SLO)Dynamic Large Objects (DLO)1. Static Large Objects (SLO)SLO 通过预定义的清单文件来支持大文件的分片上传。每个分片都作为独立的对象上传,然后使用一个 JSON 清单文件将...
Python file.save() 与 open() + write() 对比
2024年08月09日 ,作者: 黄兵
最近在使用 Flask 上传文件,并将文件保存,下面是具体代码:file = request.files['file'] filename = secure_filename(file.filename) file_path = os.path.join(current_app.static_folder, 'temp') os.makedirs(file_path, exist_ok=Tr...
64.124.8.0/24 这个 IP 地址段,如果通过 Python 获取每个 IP 地址
2024年08月09日 ,作者: 黄兵
通过 Python 获取一个 IP 地址段内的所有 IP 地址,可以使用 ipaddress 模块。示例代码如下:import ipaddress # 创建一个 IP 网络对象 ip_network = ipaddress.ip_network("64.124.8.0/24") # 列出网络范围内的所有 IP 地址 ip_addresses = list(ip_network.ho...
OpenStack Swift 与 AWS S3 对比
2024年08月01日 ,作者: 黄兵
在 OpenStack Swift 和 AWS S3 的存储层级中,存储概念是相似的,但命名和结构有所不同:AWS S3:存储桶 (Bucket): S3 中的存储桶是最高级别的存储单位。每个存储桶可以包含多个对象(文件)。对象 (Object): 存储桶中的实际文件或数据。OpenStack Swift:Account: 最高级别的存储单位,相当于一个 S3 账户。一个账户可以包含多个容器。Co...