图片字段格式说明

更新时间:

文件字段格式说明

文件(像图片、音频、视频)作为入参数支持以下两种格式的参数传递:

  1. URL 格式

    • 说明:通过一个外部链接来引用文件资源。该 URL 应该是一个可访问的网络地址,并且指向的是一个有效的文件。

    • 示例:

      json复制代码{
        "image": "https://example.com/image.jpg"
      }
      
    • 注意事项:

      • 确保 URL 是公开可访问的,避免私有网络或受限访问的 URL。

      • 传递 URL 时,请确保提供对应文件资源的服务网络连接稳定,避免因为网络问题导致文件读取失败。

  2. Base64 Data URI 格式

    • 说明:直接将文件数据以 Base64 编码的形式嵌入到请求中。这种方式适用于文件较小且希望直接在请求中携带文件数据的场景。

    • 示例:

      json复制代码{
        "image": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/..."
      }
      
    • 注意事项:

      • Base64 编码后的数据可能较大,建议在图片较小时使用此格式。

      • 请确保文件数据的编码正确,并且带有正确的 MIME 类型前缀(如 data:image/jpeg;base64,)。

      • 使用 Base64 编码会增加请求的大小,可能对请求性能产生影响,建议仅在需要时使用。

使用建议

  • 对于大多数情况,建议使用 URL 格式,因为它能减少请求的体积,并且更适合引用已托管的文件资源。

  • Base64 Data URI 格式更适合于希望将文件数据直接嵌入到请求中的场景,如在数据保密或短期临时使用的场景下。

附录

以下提供一个将本地图片转成 Base64 Data URI 的 Python 工具类实现

import base64
import os

def get_photo_base64(image_path, image_format=None):
    """
    将图像文件转换为Base64编码的数据URI

    参数:
    image_path (str): 图像文件的路径
    image_format (str, optional): 图像格式,如果未提供,将根据文件扩展名自动检测

    返回:
    str: Base64编码的数据URI
    """

    # 打开图像文件
    with open(image_path, "rb") as image_file:
        image_data = image_file.read()

    # 如果未指定图像格式,从文件扩展名中获取
    if not image_format:
        _, extension = os.path.splitext(image_path)
        image_format = extension.lstrip(".")

    # 生成Base64编码的数据URI
    base64_data = base64.b64encode(image_data).decode('utf-8')
    data_uri = f"data:image/{image_format.upper()};base64,{base64_data}"

    return data_uri


print(get_photo_base64('/xxx/xxx.png'))
print(get_photo_base64('/xxx/xxx.jpeg', "jpeg"))