You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python Requests参数化Cloudflare KV的metadata和value字段?

高效构造Cloudflare KV的multipart/form-data请求

直接用requests库的files参数即可自动生成符合要求的multipart/form-data请求,完全不需要手动拼接字符串,参数化metadata和value字段更简单且不易出错。

核心实现代码

import requests
import json

# 可参数化的元数据和值
metadata = {"description": "示例数据", "expiration": 1735689600}
value_content = "这是要存储到KV的值"  # 替换为你的内容或文件路径

# 构造multipart字段,requests会自动处理格式
multipart_fields = {
    # metadata字段:指定JSON类型,无需文件名
    "metadata": (None, json.dumps(metadata), "application/json"),
    # value字段:文本类型,若为文件则替换为("文件名", open("文件路径", "rb"), "对应MIME类型")
    "value": (None, value_content, "text/plain")
}

# Cloudflare API配置
account_id = "你的账户ID"
namespace_id = "你的KV命名空间ID"
target_key = "要创建/更新的KV键名"
api_token = "你的Cloudflare API Token"

# 发送PUT请求更新KV
api_url = f"https://api.cloudflare.com/client/v4/accounts/{account_id}/storage/kv/namespaces/{namespace_id}/values/{target_key}"
auth_headers = {"Authorization": f"Bearer {api_token}"}

response = requests.put(api_url, headers=auth_headers, files=multipart_fields)
response.raise_for_status()
print("操作成功:", response.json())

关键说明

  • files参数的每个字段是三元组(文件名, 内容, MIME类型):无需文件名时填None,requests会自动生成正确的边界分隔符和请求头。
  • metadata必须序列化为JSON字符串,并指定application/json类型,确保Cloudflare能正确解析元数据。
  • 如果要上传二进制文件(如图片、压缩包),只需将value字段的内容替换为open("文件路径", "rb"),并修改对应的MIME类型(比如image/jpeg、application/zip)。

这种方式彻底避免了手动拼接字符串可能出现的格式错误,参数化修改metadata和value只需调整对应变量即可,维护性和可靠性更高。

内容的提问来源于stack exchange,提问作者JohnJ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 20:33:12